Являются ли ViewModels независимыми от жизненных циклов активности/фрагмента или только от изменений их конфигурации. Когда они прекратят свое существование и вызовет последующий метод onCleared(). Можно ли поделиться viewModel с другим действием?
Ситуация:
Activity1+viewModel1--->(rotation)--->Activity1+viewModel1
--->(launch Intent)--->Activity2+viewModel1
Возможно ли это совместное использование, и это хорошая практика?
Кроме того, поскольку обратные вызовы жизненного цикла приложения onPause-> onStop-> onDestroy одинаковы для обоих
1. активность вращается и
2. когда действие заканчивается,
Как ViewModel выясняет, в какое время нужно вызывать onCleared и, наконец, завершить свой жизненный цикл.
Выводы:
ViewModel внутренне использует holderFragment для хранения экземпляра действия и использует метод setRetainInstance, такой как фрагменты, для учета изменений конфигурации.
Источник: Dive-Inside-of-androids-ViewModel-Architecture-Components