Как сделать чтобы после onStop не поступали обновления

«Как сделать чтобы после onStop не поступали обновления» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для предотвращения обновлений после 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().