В чем разница между жизненным циклами Activity и Fragment

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

Ответ

Основные различия:

  1. Activity управляет окном приложения, а Fragment - частью UI внутри Activity.

  2. Основные методы жизненного цикла:

    • Activity: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()
    • Fragment: аналогичные методы + onAttach(), onCreateView(), onViewCreated(), onDestroyView()
  3. Fragment зависит от Activity:

    • При повороте экрана Activity уничтожается и создается заново, Fragment пересоздается вместе с ней
    • Fragment может быть добавлен/удален динамически без пересоздания Activity
  4. Пример обработки состояния:

// Activity
override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    // Сохраняем данные
}

// Fragment
override fun onViewStateRestored(savedInstanceState: Bundle?) {
    super.onViewStateRestored(savedInstanceState)
    // Восстанавливаем данные
}