Come arrivare OrientationEventListener.onOrientationChanged () per essere chiamato solo quando ruota interfaccia utente [duplicato]

StackOverflow https://stackoverflow.com/questions/5810988

Domanda

Eventuali duplicati:
Come faccio a rilevare rotazione dello schermo

Ciao,

Tutto quello che voglio fare, è quello di rilevare un cambiamento di rotazione nella mia applicazione. Tuttavia, penso che ho trovato un bug nel sistema Android. Se stai leggendo questo:

http://developer.android.com/guide /practices/optimizing-for-3.0.html#Landscape

E 'dire di che ogni volta che il dispositivo cambia orientamento, Activity.onDestroy () viene chiamato, e l'Activity.onCreate () viene chiamato. Così ho pensato che avrei potuto semplicemente usare il metodo Display.getRotation () per capire il mio nuovo orientamento nel metodo Activity.onCreate (). Tuttavia, ho scoperto che per qualche motivo onCreate () (o anche onResume ()) non viene mai chiamato se lanciate rapidamente il dispositivo di 180 gradi. Ho dimostrato questo con brindisi messaggi. Il mio messaggio brindisi a mio Activity.onCreate () (o in Activity.onResume ()) sembrerebbe con 90 giri di laurea, ma non con 180 gradi ribalta del dispositivo. Quindi il punto è, l'affermazione nell'articolo di cui sopra non è sempre vero.

Allora ho deciso di utilizzare OrientationEventListener.onOrientationChanged (). Questo funziona, ma io non voglio onOrientationChanged () di essere chiamato più e più volte nella mia app (che viene chiamato con ogni singolo cambiamento di grado del dispositivo). Questo rallenterà tutto il resto che sto facendo. Voglio solo di essere chiamato quando ho ruotare l'abbastanza schermo per ottenere l'immagine sullo schermo per ruotare in modo che io possa capire se sto a rotation_0, rotation_90, rotation_180 o rotation_270.

Questo è un Xoom, naturalmente.

Qualche suggerimento

È stato utile?

Soluzione

Ha risposto in dettaglio qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top