Как LifecycleOwner определяет что у определенной Activity надо вызвать метод onResume

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

Ответ

LifecycleOwner использует LifecycleRegistry для управления жизненным циклом. Когда система вызывает onResume() у Activity, она автоматически уведомляет LifecycleRegistry через dispatch(Lifecycle.Event.ON_RESUME). Это происходит благодаря интеграции ComponentActivity, которая реализует LifecycleOwner и делегирует события жизненного цикла в LifecycleRegistry.

Пример:

class MyActivity : AppCompatActivity() {
    override fun onResume() {
        super.onResume() // вызывает dispatch(Lifecycle.Event.ON_RESUME)
        lifecycle.addObserver(MyLifecycleObserver())
    }
}