Aprendizaje de Jetpack----ViewModel

Documento de aprendizaje oficial

ViewModel almacena datos relacionados con la página y asocia estos datos con componentes relacionados con el ciclo de vida, como Actividad y Fragmento, para darles un ciclo de vida a los datos.

Características:

El ciclo de vida de ViewModel

comienza cuando se crea el objeto viewModel y no se destruye hasta que se destruye el controlador de interfaz al que está asociado. Esto significa que incluso si se produce un cambio de pantalla horizontal a vertical, los datos relacionados con la interfaz siempre existirán y no se verán afectados por el cambio de pantalla horizontal a vertical.

Por lo general, creamos el objeto ViewModel en el método onCreate() de Actvity. El objeto ViewModel permanecerá en la memoria hasta que se destruya la actividad y no se liberen los recursos.

A partir del principio de funcionamiento de ViewModel anterior, podemos saber:

1. Una vez creado el ViewModel, se guardará hasta que el controlador de interfaz actual (Actividad, Fragmento, etc.) ) se destruye. Los recursos se liberarán;

2. Existen diferentes controladores de interfaz y objetos ViewModel en diferentes Hashmaps, y también son diferentes objetos únicos

3. Para Para; para lograr un objeto ViewModel singleton global, puede colocar ViewModel en la Aplicación

A continuación, analicemos el principio desde la perspectiva del código fuente:

Al construir el objeto Actividad, en él; la clase principal ComponentActivity.java implementa la interfaz ViewModelStoreOwner y genera objetos ViewModelStore en su método de implementación

En el constructor del controlador de interfaz, se agrega un observador para el ciclo de vida y cuando el observador recibe Cuando la vida El ciclo del controlador de interfaz actual es Lifecycle.Event.ON_DESTROY, todos los viewModels guardados en el mapa de objetos mViewModelStore se borrarán para liberar recursos.

Aquí solo se procesa el estado del ciclo de vida de ON_DESTROY, lo que significa que después de que la instancia del objeto ViewModel se crea con éxito, no importa cómo cambie el ciclo de vida del controlador de interfaz (como la Actividad) (excepto ON_DESTROY) , ViewModel no se limpiará.

Desde aquí podemos ver la unicidad de la clave correspondiente a ViewModel

Los puntos técnicos centrales del principio de funcionamiento de ViewModel:

Modo observador, modo ingeniería , reflexión, estructura de datos Hashmap

ViewModel se usa en combinación con DataBinding en el modelo de arquitectura MVVM, lo que le dará una sensación de despegue. Se seguirá utilizando en el futuro. Este artículo solo se centra en aprender a utilizar y comprender los principios.