Каков жизненный цикл Fragment и чем он отличается от Activity?

Жизненный цикл Fragment и Activity Область: Android UI-компоненты Fragment — UI-модуль, размещаемый внутри Activity Фазы Fragment: onAttach → onCreate → onCreateView → onViewCreated → onStart → onResume →…

Короткий ответ

Что ответить на собеседовании

Жизненный цикл Fragment и Activity Область: Android UI-компоненты Fragment — UI-модуль, размещаемый внутри Activity Фазы Fragment: onAttach → onCreate → onCreateView → onViewCreated → onStart → onResume → взаимодействие → onPause → onStop → onDestroyView → onDestroy → onDetach Отличие: жизненный цикл Fragment связан с Activity; фрагмент может быть частью UI или добавляться динамически Activity — контейнер пользовательского интерфейса и логики; её цикл выглядит так: onCreate → onStart → onResume → активность → onPause → onStop → onDestroy У Fragment есть дополнительные методы управления отображением и состоянием UI — onCreateView и…

Подробный разбор

Ответ с пояснениями

Жизненный цикл Fragment и Activity

  • Область: Android UI-компоненты
  • Fragment — UI-модуль, размещаемый внутри Activity
  • Фазы Fragment: onAttach → onCreate → onCreateView → onViewCreated → onStart → onResume → взаимодействие → onPause → onStop → onDestroyView → onDestroy → onDetach
  • Отличие: жизненный цикл Fragment связан с Activity; фрагмент может быть частью UI или добавляться динамически
  • Activity — контейнер пользовательского интерфейса и логики; её цикл выглядит так: onCreate → onStart → onResume → активность → onPause → onStop → onDestroy
  • У Fragment есть дополнительные методы управления отображением и состоянием UI — onCreateView и onDestroyView, которых нет у Activity
  • Fragment можно повторно использовать в разных Activity, что упрощает модульность и адаптивный дизайн
  • Жизненный цикл Fragment подчинён жизненному циклу Activity, но сам фрагмент имеет собственные состояния и зоны ответственности
  • Практическое значение: Fragment применяют для гибких многокомпонентных интерфейсов, а Activity — для управления главным окном приложения и переходами между экранами

Развёрнутый ответ

Краткий ответ

Жизненный цикл Fragment тесно сопряжён с жизненным циклом хост-Activity, однако включает собственный набор состояний и методов. В Android Fragment представляет часть пользовательского интерфейса или поведения, которую можно встроить в Activity для повышения гибкости и повторного использования UI-компонентов.

К основным этапам жизненного цикла Fragment относятся attach, create, createView, start, resume, pause, stop, destroyView, destroy и detach. Существенный нюанс состоит в том, что Fragment может оставаться активным после уничтожения объекта представления: у него сохраняется attach, но отсутствует видимый UI (destroyView). По сравнению с Activity фрагмент более модулен и допускает динамическое добавление, удаление и другие изменения интерфейса во время работы приложения.

Основные моменты

  • Фазы жизненного цикла: сначала Fragment проходит onAttach(), связываясь с Activity, затем вызываются onCreate() и onCreateView() для подготовки интерфейса, после чего следуют стандартные методы onStart() и onResume(). При завершении жизненного цикла вначале удаляется UI через onDestroyView(), а затем уничтожается сам фрагмент в onDestroy() и onDetach().
  • Отличие от Activity: Fragment не обладает собственным окном и не функционирует автономно — его жизненный цикл зависит от Activity. Activity контролирует жизненный цикл всего экрана, тогда как Fragment отвечает только за отдельную часть UI и поведения.
  • Управление через FragmentManager: с помощью FragmentManager фрагменты можно добавлять, удалять и заменять во время выполнения, что обеспечивает гибкость интерфейса. У Activity жизненный цикл более фиксирован и определяет состояние всего экрана.

Практический контекст

В React Native или современных Android-приложениях, например при использовании Jetpack Navigation, Fragment часто применяют для адаптивных интерфейсов телефонов и планшетов. Это позволяет обновлять отдельную часть экрана без пересоздания Activity, снижает нагрузку и улучшает UX, сохраняя поддержку сложной навигации и анимаций.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку