¿Cómo Guardar un Estado de Actividad de Android Usando Guardar Estado de Instancia?

Guardar y restaurar un estado de IU de actividad es una parte importante de la experiencia del usuario. En tales casos, el cliente espera que el estado de IU continúe como antes, sin embargo, el marco destruye la acción y cualquier estado presente en ella. Es posible que haya visto durante las pruebas que la rotación de pantalla restablece toda la información recopilada del cliente. Lo mismo ocurre cuando un usuario presiona el botón atrás por error. La rotación de la pantalla es uno de los numerosos cambios del ciclo de vida en Android que puede destruir y restablecer la Actividad y hacer que se pierda toda la información. ¡Definitivamente no es una experiencia de usuario extraordinaria!

Para guardar y restaurar el estado de la interfaz de usuario, anulo dos métodos más comunes para este propósito:

Texto alternativo

onaveinstancestate ():

Para guardar los estados de la interfaz de usuario, sobrescribo onaveinstancestate(Paquete guardado en Instancestate) y guardo todos los datos de la interfaz de usuario en el paquete guardado en Instancestate.

Este método se llama antes de onStop () en versiones anteriores de Android (hasta Android 8.0) y se puede llamar después de onStop () para versiones más recientes.

@ Override
public void onSaveInstanceState (Bundle savedInstanceState) {
super.avaveinstancestate (savedInstanceState);
// Guardar cambios de estado de interfaz de usuario en savedInstanceState.
/ / Este paquete se pasará a onCreate si el proceso es
// muerto y reiniciado.
Estado de almacenamiento guardado.putBoolean («StringKeyForBoolean», false);
savedInstanceState.putDouble («StringKeyForDouble», 3.4);
savedInstanceState.putInt («StringKeyForInteger», 5);
savedInstanceState.putString («StringKey», «Folio3 / blog»);
/ / etc.
}

El Paquete es esencialmente una forma de almacenar un mapa NVP («Par Nombre-Valor»), y se pasará a onRestoreInstanceState() donde luego extraerá los valores como este:

Alt Text

Este método se llama después de onStart ().

@ Override
void público en Restoreinstancestate (Bundle savedInstanceState) {
super.avaveinstancestate (savedInstanceState);
// Restaurar el estado de la interfaz de usuario usando savedInstanceState.

Var1 = Estado de almacenamiento guardado.getBoolean («StringKeyForBoolean», false);
Var2 = savedInstanceState.getDouble («StringKeyForDouble»);
Var3 = savedInstanceState.getInt («StringKeyForInteger»);
Var4 = savedInstanceState.getString («Tecla de cadena»);

}

De esta manera, puede guardar todos los estados y otras variables de datos que podrían perderse en la rotación de la pantalla o cuando la actividad actual pasa a segundo plano. Guardar y restaurar estados de interfaz de usuario es una buena práctica en el desarrollo de aplicaciones para Android.
Nota: Cuando se crea una actividad por primera vez, no habrá datos en el paquete de estado guardar instancia.

Consulte esta guía si planea iniciar una aplicación.



+