Necesito manejar cambios de orientación en mi aplicación Android. Para este propósito, decidí usar la clase de conveniencia OrientationEventListener
. Pero su método de devolución de llamada tiene un comportamiento algo extraño.Problemas al manejar cambios de orientación
Mi aplicación comienza en el modo vertical y luego cambia a la del paisaje. Tengo un código personalizado ejecutándose en el método de devolución de llamada onOrientationChanged
que proporciona cierta lógica de manejo de la interfaz de usuario adicional: tiene algunas llamadas al findViewById
. Lo que es extraño es que cuando se cambia de modo horizontal a vertical onOrientationChanged
devolución de llamada se llama dos veces, y lo que es aún peor - la segunda llamada está tratando con malContext
- findViewById
método comienza a regresar null
. Estas llamadas se realizan desde el TrenzadoPrincipal
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listener = new OrientationListener();
}
@Override
protected void onResume() {
super.onResume();
// enabling listening
listener.enable();
}
@Override
protected void onPause() {
super.onPause();
// disabling listening
listener.disable();
}
he replicado el mismo comportamiento con un maniquí Activity
sin ninguna lógica excepción de uno que se ocupa de hadling orientación. Inicié el cambio de orientación desde el emulador de Android 2.2 presionando Ctrl + F11 ¿Qué podría estar mal?
UPD: clase interna que implementa OrientationEventListener
private class OrientationListener extends OrientationEventListener {
public OrientationL() {
super(getBaseContext());
}
@Override
public void onOrientationChanged(int orientation) {
toString();
}
}
}
favor publicar su código onOrientationChanged demasiado –
¿Has probado esto al probar en un teléfono real? Tuve algunos problemas con los cambios de orientación que solo ocurrieron al probar en un emulador. Tenía algo que ver con el emulador. Fingía cambiar la orientación de la pantalla. También tuve un problema con la recreación de la aplicación dos veces. –
Desafortunadamente, no tengo acceso al teléfono real por ahora – nixau