Cómo manejar la muerte del proceso de Android | Por Mithat Sinan Sarı | Enero de 2022
¿Alguna vez te has preguntado qué sucede cuando morimos? nadie sabe. Pero sabemos algunas cosas: cuando una aplicación muere, perdemos el estado.
Desafortunadamente, los dispositivos móviles no tienen baterías ilimitadas ni memoria ilimitada. Es por eso que cuando el sistema necesita memoria, mata el proceso para hacer algo de espacio. Por lo tanto, debemos asegurarnos de que nuestra aplicación no se vea afectada por la muerte de este proceso. Si bien es muy importante en términos de experiencia de usuario, la solución es muy simple.
Veamos un ejemplo ;Wmi Hay una aplicación donde cuando obtenemos los detalles del usuario Get User
se hace clic en el botón. Este es el estado inicial de la aplicación.
cuando hacemos clic Get User
botón, obtenemos los detalles del usuario de, digamos, una API y actualizamos la interfaz de usuario.
Tenemos un modelo de vista simple para mantener el estado de la interfaz de usuario;
Esta es nuestra clase de estado de UI, solo una clase de datos simple.
Dado que mantenemos la referencia de estado de la interfaz de usuario en ViewModel, la aplicación no pierde estado cuando rotamos el dispositivo o enviamos la aplicación al fondo.
Pero si el sistema elimina la aplicación mientras está en segundo plano, el usuario verá el estado inicial/vacío cuando se vuelva a abrir la aplicación.
Simule la muerte del proceso en Android Studio;
ir con gato de registro -> Terminar la aplicación
O puede habilitar la opción «No mantener actividades» en la configuración de desarrollador de su dispositivo.
Entonces, ¿cómo evitamos la pérdida de estado en este caso? ¿Cómo salvamos el estado y cómo lo manejamos? usamos; SavedStateHandle
Una vez que actualizamos el estado de la interfaz de usuario, lo guardamos en SavedStateHandle
Cuando la aplicación se reinicia, comprobamos si guardamos el estado. ¡Es así de simple!
Al aplicar esta solución, debemos considerar algunos puntos clave;
- Datos que tenemos
SavedStateHandle
debe serParcelable
De esta manera podemos escribirlo en el paquete. - La cantidad de datos debe mantenerse pequeña, ya que el proceso del sistema debe mantener los datos proporcionados siempre que el usuario pueda volver a la actividad. Android sugiere que deberíamos mantener el estado de guardado en menos de 50k de datos.
Puede ver la aplicación en el repositorio a continuación;