Sobes.tech
Junior — Middle

¿Qué mecanismo es mejor para guardar el estado de la interfaz de usuario: ViewModel o SaveInstanceState, y en qué se diferencian?

sobes.tech AI

Respuesta de la IA

ViewModel y SaveInstanceState sirven para guardar el estado de la interfaz de usuario, pero funcionan de manera diferente y están destinados a tareas distintas.

  • ViewModel guarda datos en memoria durante cambios de configuración (por ejemplo, rotación de pantalla). Vive tanto como la Activity o Fragment, y no se destruye al recrear la UI. Es adecuado para almacenar grandes volúmenes de datos y lógica de negocio.

  • SaveInstanceState es un mecanismo para guardar pequeños datos en un Bundle, que se conserva cuando la Activity es destruida por el sistema (por ejemplo, por falta de memoria). Los datos de SaveInstanceState se restauran al volver a crear la Activity.

¿Qué es mejor usar?

  • Para guardar el estado de la UI que debe sobrevivir a la rotación de pantalla, es mejor usar ViewModel.
  • Para guardar datos críticos que deben restaurarse después de la destrucción completa de la aplicación por el sistema, se usa SaveInstanceState.

A menudo se combinan: ViewModel para la lógica principal y datos, SaveInstanceState para pequeños datos primitivos que necesitan ser restaurados rápidamente.