Estado de ahorro de Android en el cambio de orientación
Tengo una aplicación de Android que mantiene el estado con respecto a la distancia recorrida, el tiempo transcurrido, etc Este estado me puede almacenar convenientemente en un objeto y almacenar una referencia a ese objeto en el paquete cuando Android llama onDestroy () cuando el usuario cambia la pantalla , Luego restaure el estado en onCreate (Bundle savedBundle). Sin embargo, también tengo algún estado en los Botones y EditText objetos en la pantalla que quiero persistir a través de orientaciones de pantalla. Por ejemplo, en onStart (Bundle savedBundle) llamo a:
_timerButton.setBackgroundColor(Color.GREEN); _pauseButton.setBackgroundColor(Color.YELLOW); _pauseButton.setEnabled(false);
A continuación, durante el funcionamiento de mi aplicación, se cambiará el estado de colores / activado de estos botones. ¿Existe una manera más conveniente de persistir el estado de los elementos de la interfaz de usuario (EditText, objetos Button, etc) sin tener que guardar / restaurar manualmente cada atributo para cada botón? Se siente realmente torpe tener que manejar manualmente este tipo de estado entre las orientaciones de la pantalla.
- Cómo probar automáticamente onResume el comportamiento llamando onDestroy usando Robotium?
- Acivity se está destruyendo mientras se presiona el botón de inicio.
- Cómo distinguir si onDestroy será llamado después de onPause
- ¿Hay un Application :: onDestroy () equivalente para Android?
- Android ¿hay alguna llamada de vista cuando se destruye?
Gracias por cualquier ayuda.
- ¿Es seguro hacer toda la limpieza en onDestroy?
- ¿Qué está haciendo exactamente el método Activity.finish ()?
- Android Fragment onCreateView después de onDestroy no se vuelve a llamar
- Android: Activity.onDestroy () no es llamado cuando Dalvik elimina esta actividad
- Cómo desvincular correctamente los servicios
- ¿OnDestroy () o finish () matan realmente la actividad?
- Ver - buscando un evento como en (Ver) Destruido
- Android: Will finish () SIEMPRE llama a onDestroy ()?
¿Ha intentado usar: su trabajo a través de
<activity name= ".YourActivity" android:configChanges="orientation|screenSize"/>
En el archivo de manifiesto?
No funciona de forma predeterminada porque, al cambiar la orientación onCreate
volverá a llamar y volverá a dibujar su vista.
Si escribes este parámetro sin necesidad de manejar en Actividad, el marco se encargará del resto de las cosas. Conservará el estado de la pantalla o del diseño si se cambia la orientación.
NOTA Si está utilizando un diseño diferente para el modo horizontal, al agregar estos parámetros no se llamará el diseño para el modo horizontal.
Otra manera y otra manera
Para guardar su variable o valores debe usar onSaveInstanceState (Bundle); Y cuando los cambios de orientación entonces deberían recuperar los valores deben utilizar onRestoreInstanceState () también, pero no muy común. ( OnRestoreInstanceState () se llama después de onStart (), mientras que onCreate () se llama before onStart () . Utilice los métodos put para almacenar valores en onSaveInstanceState ()
protected void onSaveInstanceState(Bundle icicle) { super.onSaveInstanceState(icicle); icicle.putLong("param", value); }
Y restaurar los valores en onCreate () :
public void onCreate(Bundle icicle) { if (icicle != null){ value = icicle.getLong("param"); } }
- ¿Cómo cambiar la fuente del cajón de navegación?
- Facebook Android SDK v4.0.0 ShareDialog NullPointerException issue