Cómo obtener orientationEventListener.onorientationChanged () para llamarse solo cuando la interfaz de usuario gira [duplicado

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

Pregunta

Posible duplicado:
¿Cómo detecto la rotación de la pantalla?

Hola,

Todo lo que quiero hacer es detectar un cambio de rotación en mi aplicación. Sin embargo, creo que encontré un error en el sistema Android. Si lees esto:

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

Dice que cada vez que el dispositivo cambia de orientación, actividades Así que pensé que podría usar el método display.getrotation () para descubrir mi nueva orientación en el método Activity.Oncreate (). Sin embargo, descubrí que por alguna razón OnCreate () (o incluso onresume ()) nunca se llama si voltea el dispositivo rápidamente en 180 grados. Probé esto usando mensajes de tostadas. Mi mensaje de tostada en mi actividad.Oncreate () (o en Activity.onresume ()) aparecería con giros de 90 grados, pero no con volteos de 180 grados del dispositivo. Entonces, el punto es que la afirmación en el artículo anterior no siempre es cierta.

Entonces decidí usar OrientationEventListener.onorientationChanged (). Esto funciona, pero no quiero que OnorientationChanged () se llame una y otra vez en mi aplicación (se llama con cada cambio de grado del dispositivo). Esto ralentizará todo lo demás que estoy haciendo. Solo quiero que se llame cuando giro la pantalla lo suficiente como para que la imagen en la pantalla gire para que pueda averiguar si estoy en rotación_0, rotación_90, rotación_180 o rotación_270.

Esto es con un Xoom, por supuesto.

Alguna sugerencia

¿Fue útil?

Solución

Respondido en detalle aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top