Сначала , класс ViewModel поддерживает жизненный цикл. это означает, что класс ViewModel, который вы определили, будет управляться в соответствии с жизненным циклом действия / фрагмента.
То же, что и Observers, в качестве параметра используется lifecycleOwner. Это означает, что наблюдатель будет жить все время, пока активен фрагмент / активность. Если он вошел в OnStop, вам не нужно прекращать наблюдение вручную, так как его lifecyleOwner является действием / фрагментом.
Во-вторых Для разницы между использованием активности в качестве lifecycleOwner над фрагментом, экземпляр ViewModel будет поддерживать активность больше, чем определяя его внутри фрагмента. Как активность держит фрагменты. Один фрагмент может войти в onDetach (), поэтому мы гарантируем, что экземпляр этой ViewModel внутри фрагмента будет уничтожен. Но если мы определим это внутри деятельности, жизнь деятельности будет более продолжительной.
В-третьих, я думаю, что поскольку в вашем случае одни и те же данные, и только представление изменяется во фрагментах, я предлагаю использовать SharedViewModel , проверьте эту статью для получения более подробной информации. .
Надеюсь, все ясно.
Счастливое кодирование 101