Жизненный цикл фрагмента тесно связан с жизненным циклом родительской Activity. Фрагмент не может существовать без Activity.
Ключевые отличия:
onAttach() перед onCreate(), где происходит связывание с Activity (получение контекста Activity), и onCreateView(), где создается View-иерархия фрагмента.onDestroyView() перед onDestroy(), где происходит очистка View-иерархии, и onDetach() после onDestroy(), где происходит отвязка от Activity.Таблица сравнений основных методов жизненного цикла:
| Activity Method | Fragment Method(s) | Description |
|---|---|---|
onCreate() | onAttach(), onCreate(), onCreateView() | Создание экземпляра, привязка, создание View |
onStart() | onStart() | Становится видимым |
onResume() | onResume() | Начинает взаимодействовать с пользователем |
onPause() | onPause() | Переходит на задний план или частично скрывается |
onStop() | onStop() | Становится невидимым |
onDestroy() | onDestroyView(), onDestroy(), onDetach() | Уничтожение View, экземпляра, отвязка |
Жизненный цикл фрагмента более гранулярен, что позволяет более гибко управлять состоянием и поведением UI-компонентов в рамках одной Activity. Например, onCreateView() вызывается каждый раз при создании View фрагмента, даже если сам фрагмент уже создан (например, при смене конфигурации). onCreate() вызывается единожды за жизненный цикл экземпляра фрагмента.