Ответ
Для предотвращения обновлений после onStop() можно использовать флаги или отписываться от источников данных. Пример с LiveData:
private var isActive = true
override fun onStart() {
super.onStart()
isActive = true
viewModel.data.observe(this) { data ->
if (isActive) updateUI(data)
}
}
override fun onStop() {
super.onStop()
isActive = false
}
Или отписаться явно:
override fun onStop() {
super.onStop()
viewModel.data.removeObservers(this)
}
Для других источников (Flow, RxJava) аналогично - отменяйте подписки в onStop() и возобновляйте в onStart().