ile bittiğini öğrenin Bir Android aygıtının ekranını döndürmenin ne kadar sürdüğünü ölçmek için bir .apk yazmaya çalışıyorum (çift döngüde döngü).Rotasyonun ne zaman setRequestedOrientation
ben 4 pozisyonlarında (PORTRAIT
, LANDSCAPE
, REVERSE_PORTRAIT
ve REVERSE_LANDSCAPE
) ekranı reoriente için setRequestedOrientation()
çağrıları kullanıyorum.
Sorunum, rotasyonun ne zaman biteceğini anlayamıyorum. Birkaç çözüm denedim, ancak her birinin sorunları var.
- 'u kullanmayı denedim. Sorun, oryantasyon değişikliği sensörden gerçekleştiğinde ve
setRequestedOrientation()
'dan değil, bu yöntemin tetiklenmesidir. BensetRequestedOrientation()
içinsetRequestedOrientation()
setRequestedOrientation()
setRequestedOrientation()
benim önceki çağrı sonrası çalışmayaonConfigurationChanged
parametresi ilesetRequestedOrientation()
aramak zorunda. - Ekran yönünü (derece cinsinden) kontrol etmek için bir while döngüsü ekleyerek
setRequestedOrientation()
"engelleme" türünü yapmayı denedim.setRequestedOrientation()
'dan önceandroid.view.Display.getRotation()
'u aradım ve değişene kadar bir while döngüsü ile blok. Ne yazık ki, bu da işe yaramıyor. UI yeniden görünmeden önce döner. - Rotasyonun yapıldığını varsaymak için tekrar çağrılmak üzere
onCreate()
bekleyerek etkinliğin yaşam döngüsünü izlemeyi denedim. Önceden, sayacımsetRequestedOrientation()
numaralı çağıran her iterasyonda bir değere ulaşana kadar döngü yapıyordum. Bu senaryoda, while döngüsüm bir if ifadesi olur ve her seferindeonCreate
işlevini çağıracağını varsayalım, ancak bir çift yineleme sonrasındaonCreate()
çağrılmıyor. Kullanıcı arayüzü de yeniden çizilmiyor gibi görünüyor. - Çevrimiçi bulduğum (ancak tam olarak gerçekleştiremediğim) son çözüm,
setRequestedOrientation()
'dan hemen sonrawaitForIdleSync()
yöntemini kullanmaktır.waitForIdleSync()
, Instrumentation sınıfının bir parçasıdır ve bence bu, test için yapılmış ve standart bir .apk için değil.
Herhangi bir fikir gerçekten memnuniyetle karşılanacaktır. Yardımını gerçekten takdir ederim.