vida tipos pila intent example estados ciclo activity actividades android save double lifecycle oncreate

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.