Как жизненный цикл фрагмента связан с жизненным циклом Activity

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

Ответ

Фрагмент всегда привязан к Activity и его жизненный цикл зависит от родительского Activity. Основные методы жизненного цикла фрагмента вызываются синхронно с соответствующими методами Activity:

// Activity onCreate() -> Fragment onAttach(), onCreate(), onCreateView(), onViewCreated()
// Activity onStart() -> Fragment onStart()
// Activity onResume() -> Fragment onResume()
// Activity onPause() -> Fragment onPause()
// Activity onStop() -> Fragment onStop()
// Activity onDestroy() -> Fragment onDestroyView(), onDestroy(), onDetach()

Ключевые моменты:

  • Фрагмент не может существовать без Activity
  • Добавление фрагмента в back stack влияет на порядок вызова методов
  • View фрагмента уничтожается в onDestroyView(), но сам фрагмент продолжает существовать