Sto provando a scrivere un .apk per misurare quanto tempo ci vuole per ruotare lo schermo di un dispositivo Android (eseguendo il ciclo di un paio di rotazioni).Sapere quando la rotazione è finita usando setRequestedOrientation
Sto usando le chiamate a setRequestedOrientation()
al reoriente lo schermo in 4 posizioni (PORTRAIT
, LANDSCAPE
, REVERSE_PORTRAIT
e REVERSE_LANDSCAPE
).
Il mio problema è che non sono in grado di dire quando la rotazione è finita. Ho provato alcune soluzioni, ma ognuna ha i suoi problemi.
- Ho provato a utilizzare . Il problema è che questo metodo viene attivato quando il cambio di orientamento avviene dal sensore e non da
setRequestedOrientation()
. In realtà devo chiamaresetRequestedOrientation()
con il parametroFULL_SENSOR
peronConfigurationChanged
per funzionare dopo la mia precedente chiamata asetRequestedOrientation()
. - Ho provato a fare il "blocco"
setRequestedOrientation()
aggiungendo un ciclo while per controllare l'orientamento dello schermo (in gradi). Ho chiamatoandroid.view.Display.getRotation()
prima delsetRequestedOrientation()
e blocco con un ciclo while finché non è stato modificato. Sfortunatamente, non funziona neanche. Ritorna prima che l'interfaccia utente venga nuovamente visualizzata. - Ho provato a seguire il ciclo di vita dell'attività, attendendo che
onCreate()
venga richiamato, per supporre che la rotazione sia stata eseguita. In precedenza, stavo effettuando un ciclo finché il mio contatore non ha raggiunto un valore, in ciascuna iterazione che chiamasetRequestedOrientation()
. In questo scenario, il mio ciclo while diventa un'istruzione if, e presumo cheonCreate
chiamerà la funzione ogni volta, maonCreate()
non viene chiamato dopo un paio di iterazioni. Anche l'interfaccia utente non sembra essere ridisegnata. - Una soluzione finale che ho trovato online (ma che non sono stato completamente in grado di implementare) consiste nell'utilizzare il metodo
waitForIdleSync()
subito doposetRequestedOrientation()
.waitForIdleSync()
fa parte della classe Instrumentation e penso che questo sia fatto solo per i test e non per un .apk standard.
Qualsiasi idea sarebbe davvero gradita. Apprezzerei molto il tuo aiuto.