Какие методы вызываются при переходе между двумя Activity

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

Ответ

При переходе между Activity вызывается следующий порядок методов:

  1. В текущей Activity:

    • onPause() - активность теряет фокус
    • onStop() - если новое Activity полностью перекрывает предыдущее
  2. В новой Activity:

    • onCreate()
    • onStart()
    • onResume() - теперь она получает фокус
  3. Если пользователь нажмет "Назад":

    • onPause() новой Activity
    • onCreate()/onRestart() + onStart() + onResume() предыдущей Activity
    • onStop() + onDestroy() новой Activity (если finish() был вызван)

Пример:

// Activity1
override fun onPause() {
    super.onPause()
    Log.d("LIFECYCLE", "Activity1 onPause")
}

// Activity2
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    Log.d("LIFECYCLE", "Activity2 onCreate")
}