ViewModel
переживает пересоздание фрагмента. Закончили на том, что класс FragmentManagerViewModel
сохраняет объекты ViewModel
для фрагмента.Сам
FragmentManagerViewModel
– это ViewModel
, для которого объектом ViewModelStoreOwner
выступает FragmentActivity
.FragmentActivity
наследуется от класса ComponentActivity
, который реализует метод getViewModelStore(): ViewModelStore
интерфейса ViewModelStoreOwner
.ComponentActivity
использует переопределенный метод Activity.onRetainNonConfigurationInstance() для сохранения объекта ViewModelStore
. Этот метод вызывается между onStop()
и onDestroy()
и возвращает произвольный объект, который сохраняется системой во время пересоздания активити.При вызове
getViewModelStore()
, ComponentActivity
получает сохраненный ViewModelStore
с помощью метода getLastNonConfigurationInstance().