Generalidades

Guardar el estado de la actividad en Android

Empleos JB

Hola, desarrolladores de Android, hoy estoy aquí para explicar el uso de dos importantes métodos de devolución de llamada para guardar y restaurar el estado de la interfaz de usuario de la actividad; Guardar el estado de la instancia con onRestoreInstanceState.

A lo largo del artículo, utilizo la aplicación de contador como ejemplo, que aumentará / reducirá el valor del contador cuando se haga clic en el botón.

Aplicación de contador
Foto de Nick Fiennes en Unsplash

El término estado de instancia suena difícil, pero no se preocupe, lo explicaré en términos simples.

El comportamiento de actividad normal es, La actividad se destruirá permanentemente una vez que el usuario presione el botón Atrás o cuando la actividad se complete llamando Terminar() método Por lo tanto, la próxima vez que vuelva a abrir el mismo evento, se creará un evento nuevo.

La devolución de llamada del ciclo de vida para el comportamiento anterior será:

onPause () -> onStop () -> onDestroy () -> Abrir la misma actividad nuevamente -> onCreate () -> onStart () -> onResume ()

Comportamiento normal de la aplicación

El ejemplo anterior es un comportamiento normal de la aplicación. Siempre que el usuario presione deliberadamente el botón Atrás, la actividad se destruirá permanentemente. La próxima vez que se vuelva a abrir la misma actividad, el valor del contador (8) y el nombre en el texto de edición serán despejado. Esto es de esperar, porque el botón de retroceso de la actividad significa que el usuario quiere abandonar la actividad, por lo que no es necesario recordar nada que existiera anteriormente (el valor del contador y el nombre en el texto de edición).

pero…………?

¿pero que?

¿Qué sucede cuando un evento se interrumpe debido a Cambios de configuración o muerte del procesoEste no es el comportamiento esperado. Por lo tanto, es posible que el usuario desee volver a la misma actividad más rápido y que la actividad tenga el mismo estado que antes (datos ingresados ​​en el texto de edición, valor del contador).

Para lograr este sistema Android recordará la actividad que ya existe antes. Por lo tanto, la próxima vez que se abra la misma actividad, se creará una nueva actividad, pero con datos recordados / estado guardado (valor del contador, nombre en el texto de edición).

Los datos guardados que se utilizan para restaurar el estado anterior de la actividad se denominan estado de instancia..

La devolución de llamada del ciclo de vida para el comportamiento anterior será:

onPause () -> onStop () -> onSaveInstanceState () -> onDestroy () -> Abrir la misma actividad nuevamente -> onCreate () -> onStart () -> onRestoreInstanceState () -> onResume ()

OnSaveInstanceState () se llama antes de onStop () en dispositivos Pre Pie

Puede ver dos métodos de ciclo de vida adicionales arriba; onSaveInstanceState () con onRestoreInstanceState ()

¡Discutámoslos en la siguiente sección!

Cuando ocurren cambios de configuración en la Actividad o el proceso muere, es importante guardar el estado de la Actividad para que se mantenga el mismo estado anterior cuando se abra la misma Actividad en el futuro.

por defecto Ver estado (Edite los datos en el texto, la posición de Listview scoll) Si la vista tiene una ID, el sistema Android la guarda.Bajo estas circunstancias onSaveInstanceState () Llamado internamente por el sistema Android.

Pero si el usuario desea guardar información adicional (como el valor del contador), incluso si cambia la configuración de la actividad, esta información debe conservarse y luego el desarrollador debe sobrescribirla.

onSaveInstanceState(outState: Bundle?)

Aquí puede usar pares clave-valor para guardar datos sin procesar simples manojo Objetos proporcionados.

override fun onSaveInstanceState(outState: Bundle)       super.onSaveInstanceState(outState)      outState.putInt(SCORE_KEY,countValue)

SCORE_KEY -> la clave de cadena utilizada para guardar el valor del contador en el paquete

countValue -> un valor entero que contiene el valor real del contador

En pocas palabras, este método se utiliza para restaurar el estado guardado con onSaveInstanceState ().

Tenga en cuenta que esta devolución de llamada solo se llamará cuando la actividad se vuelva a abrir después de un cambio de configuración o la muerte del proceso.

El sistema Android restaurará automáticamente el estado de vista guardado automáticamente llamando a onRestoreInstanceState () interno.

Para restaurar sus datos guardados, debe sobrescribirlos,

onRestoreInstanceState(savedState: Bundle?)

Aquí, podemos usar Bundle para recuperar los datos guardados usando la clave.

override fun onRestoreInstanceState(savedInstanceState: Bundle)       super.onRestoreInstanceState(savedInstanceState)      countValue = savedInstanceState.getInt(SCORE_KEY,0)

SCORE_KEY -> La clave de cadena utilizada para recuperar el valor del contador almacenado en el paquete

Valor de recuento -> Variable entera que mantiene el valor del contador a lo largo de la actividad

LEER  Desbloquee los cambios recientes en la política de la App Store de Apple

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba