Cómo funciona ViewModel
Obviamente, las clases que implementan esta interfaz deben poder proporcionar un ViewModelStore, que es un repositorio para almacenar objetos ViewModel, y administrar ViewModels internamente a través de un HashMap.
El método de conexión de Actividad se utiliza a través de la llamada formLaunchActivity de ActivityThread durante el proceso de carga de Actividad. Esta llamada se pasa al objeto NonConfigurationInstances en ActivityRecordClient. ActivityRecordClient lo guarda al guardar el objeto NonConfigurationInstances. la Actividad porque los cambios de configuración se destruyen para su inspección.
Cuando una Actividad se destruye debido a un cambio de configuración, ActivityThread llamará al método formDestroyActivity durante su destrucción, que internamente vuelve a llamar al método retenciónNonConfigurationInstances de la Actividad para obtener el objeto NonConfigurationInstances. Lo siguiente es parte del proceso del método "retainNonConfigurationInstances":