2011-03-10 15 views
7

¿Cómo puedo almacenar el estado de mi aplicación cuando se presiona el botón Atrás?Cómo guardar la aplicación en el botón Atrás, presione

Cuando se presiona el botón Atrás solo se llama a onPause() pero no a onSaveInstanceState donde podemos almacenar nuestros datos en el paquete outState.

Una respuesta puede ser sharedPreference pero mi problema es que almacenará solo int y no intArray como paquetes.

¿Hay alguna forma de llamar explícitamente al onSaveInstanceState?

Respuesta

2

usuario 600027 ... Incluso si pudieras llamar a SaveInstanceState, el paquete no se mantendría y no creo que esté disponible después de una muerte fuerte. Podría escribir un método para convertir una matriz de entradas en un conjunto de cadenas y luego conservar los datos llamando a putStringSet() y luego escribir un método para convertir un conjunto de cadenas en una matriz de entradas.

JAL

1

Puede hacer el ahorro normal en Activity#onDestroy().

Creo que la intención detrás de onCreate(Bundle), onSaveInstanceState(Bundle) y onRestoreInstanceState(Bundle) es darle la oportunidad de guardar el estado antes de ser asesinado en segundo plano. La aplicación debería entonces recuperarse y aparecer al usuario como si nada hubiera sucedido.

Al presionar el botón Atrás, el usuario está en cierto sentido "terminado" con la actividad. La cantidad de datos que se deben guardar es diferente. Sí, sería una buena idea guardar su estado en SharedPreferences en este caso.

Cuestiones relacionadas