Android: Manejo eficiente de la rotación de la pantalla
En Android, cuando se cambia la orientación de la pantalla (entre paisaje y retrato) se onCreate
método onCreate
que, si no se maneja correctamente, recreará toda la actividad cuando el resultado cambie demasiado simplemente el diseño y retenga toda la misma información.
Sé de algunas maneras de resolver esto, pero estoy interesado en la manera más eficiente.
- Widget Android ImageButton pierde imagen cuando se gira la pantalla
- Bloqueo de orientación de la pantalla
- Android: los mapas de bits cargados desde la galería se giran en ImageView
- ¿Cómo restaurar la posición de desplazamiento de texto tras la rotación de la pantalla?
- Rotar una imagen en Android sin OutOfMemoryError o downscaling
1) Diciendo al manifiesto que onConfigurationChanged()
el cambio de orientación reemplazando el método onConfigurationChanged()
y dejándolo vacío.
2) anule onSaveInstanceState()
y guarde los datos aquí para ser repoblados en onCreate()
3) Override onPause()
que creará un paquete de datos y lo enviará a onSaveInstanceState()
Obviamente, estas son todas opciones, pero cuál es una mejor práctica (pequeñas, medianas, grandes cantidades de datos)
Gracias
- Fragmentos y problemas con la pantalla giratoria
- Obtener información de rotación automática en Android
- Android: gira la imagen en ImageView por 90degrees pero sin demora
- Establecer vista de imagen después del cambio de orientación
- ¿Cómo desactivar la rotación en modo horizontal?
- ¿Cómo hacer una pausa de la rotación de la lona durante 2 segundos en ángulos específicos?
- Rotación del videobuffer real en Videoview
- Recomponer Disposición de actividad para reproducir vídeo en pantalla completa cuando se gira la pantalla
Algunas configuraciones de dispositivos pueden cambiar durante el tiempo de ejecución (como la orientación de la pantalla, la disponibilidad del teclado y el idioma). Cuando se produce este cambio, Android reinicia la actividad en ejecución ( onDestroy()
se llama, seguido de onCreate()
).
- Para manejar adecuadamente un reinicio, es importante que su actividad restaure su estado anterior a través del ciclo de vida normal de la actividad, en el que Android llama
onSaveInstanceState()
antes de que destruya su actividad para que pueda guardar datos sobre el estado de la aplicación. A continuación, puede restaurar el estado duranteonCreate()
oonRestoreInstanceState()
.
Sin embargo, es posible que encuentre una situación en la que reiniciar su aplicación y restaurar cantidades significativas de datos puede ser costoso y crear una experiencia de usuario pobre. En tal situación, usted tiene otras dos opciones:
-
Conservar un objeto durante un cambio de configuración
Permita que su actividad se reinicie cuando cambie una configuración, pero lleve un Objeto con estado a la nueva instancia de su actividad.
-
Maneje el cambio de configuración usted mismo
Evite que el sistema reinicie su actividad durante ciertos cambios de configuración, pero reciba una devolución de llamada cuando las configuraciones cambien, de modo que pueda actualizar manualmente su actividad según sea necesario.
Por lo tanto, según su operación de datos y la costa de la experiencia del usuario con la aplicación puede elegir lo que es mejor para usted ..
EDIT: Según su necesidad de sólo cambiar el diseño creo que tiene que usar onConfigurationChanged()
y hacer los cambios en ella.
- ¿Por qué no se llama al método onProviderEnabled () de Android?
- Androide. Cambiar el color de fondo de un FrameLayout de código