android - tipos - Estado de actividad de ahorro en el onPause
tipos de activity en android (3)
Tengo una variable que he guardado y restaurado con éxito usando onSaveInstanceState
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); // the UI component values are saved here.
outState.putDouble("VALUE", liter);
Toast.makeText(this, "Activity state saved", Toast.LENGTH_LONG).show();
}
Pero esto solo funciona si la actividad es destruida. Quiero guardar la misma variable anulando el método onPause () y volviendo cuando la actividad ya no está en pausa, cualquier idea sobre cómo hacer esto es muy apreciada
Como ha descubierto, onSaveInstanceState
es útil solo en situaciones en las que necesita recrear la misma llamada "instancia" de la Actividad después de que haya sido destruida por el sistema operativo, generalmente porque está demasiado lejos en la pila trasera para mantenerse vivo. presión de la memoria.
Guardar sus datos en onPause
es, de hecho, el camino a seguir para la persistencia que dura más allá de una sola ejecución de su actividad. Para que esto funcione, tienes varias opciones, que incluyen:
- Preferencias compartidas
- Archivos
- Bases de datos
- Proveedores de contenido
Sugiero leer esta documentación para obtener más información sobre cada una de estas opciones:
http://developer.android.com/guide/topics/data/data-storage.html
Si elige guardar el estado de la actividad en las preferencias compartidas, puede consultar el componente GNStateManager de la biblioteca que escribí para facilitar el almacenamiento y la recuperación de los campos requeridos de la actividad marcada con mi anotación @GNState. Es muerto simple de usar. También se pueden guardar otros estados de objeto de clase singleton. Consulte aquí para obtener información sobre instalación y uso: https://github.com/noxiouswinter/gnlib_android/wiki/gnstatemanager
Simplemente puede asignar su variable foo
al miembro de la clase mFoo
en onPause
siempre que también guarde mFoo
en el paquete de estado en onSaveInstanceState
. Lo mismo ocurre con el escenario de restauración.