2011-10-13 16 views

Respuesta

8

Depende de su intención. Usar el onSaveInstanceState() es solo una solución razonable si desea asegurarse de guardar el estado durante los cambios de configuraciones y otros eventos de reinicio. En el caso de que aspire a un verdadero ahorro del estado de la aplicación más allá del ciclo de vida de la aplicación, debería considerar usar las Preferencias Compartidas o incluso emplear una base de datos.

+0

Sí, necesito poder restaurar el estado de la aplicación, después de que se reinicie. Así que onSaveInstanceState() sería la mejor solución – Waypoint

+0

Si el sistema cierra la aplicación en realidad, se perderá el estado de la instancia guardada. Lo mismo ocurre con apagar el dispositivo en sí. Si también desea conservar el estado en esos casos, 'onSaveInstanceState()' no será suficiente. –

+0

Ah, gracias, así que SharedPreferences es el objetivo – Waypoint

1

Puede que no tenga las mismas chuletas de desarrollo como algunos de los otros críticos aquí (he estado desarrollando aplicaciones serio desde julio de 2012), pero no tengo encontró una solución que integra SharedPreferences así como onSaveInstanceState().

Mi aplicación tiene una actividad de pantalla de bienvenida que lee valores de SharedPreferences y los asigna a las variables apropiadas. Además, cada actividad que realizo tiene su propio método onSaveInstanceState(), y comprometo todos los datos que necesito guardar en SharedPreferences, en todas y cada una de las actividades. Dado que onSaveInstanceState() se ejecuta antes de que una aplicación o actividad se cierre normalmente, debe hacer una copia de seguridad de los valores de datos en todas las circunstancias normales.

Puede que no sea la solución más eficiente en cuanto a códigos, especialmente en aplicaciones más grandes con muchas actividades, pero en lo que respecta a mis pruebas, protege su aplicación contra pérdida de datos el 99% del tiempo.

Si un desarrollador con más experiencia quiere avisar y confirmar o negar esto, estoy seguro de que enriquecerá la pregunta y la respuesta.

+0

Sé que esto es antiguo, pero para lectores futuros: 'onSaveInstanceState' no se ejecuta antes de que una aplicación o actividad se cierre normalmente. Se ejecuta antes de que la aplicación o la actividad se cierre por el sistema (por ejemplo, cambios de orientación, poca memoria, ir al fondo). Un caso importante cuando no se llama es cuando un usuario sale de la actividad presionando el botón Atrás – bcorso

Cuestiones relacionadas