Фрагменты реализуют интерфейс LifecycleOwner и, соответственно, у них можно получить объект Lifecycle. У Lifecycle есть всего 5 состояний: INITIALIZED, CREATED, STARTED, RESUMED, DESTROYED. То есть сам жизненный цикл фрагмента по сути точно такой же как и у активити, так как объект Lifecycle может иметь точно такие же состояния. Но в отличии от активити у фрагмента больше колбэк-методов. Если рассматривать жизненный цикл фрагмента вместе с колбэками, то получится как то так:
- CREATED (вызов onCreate())
onCreate() — фрагмент создан
onCreateView() — View создается
onViewCreated() — View была создана
onViewStateRestored() — состояние View было восстановлено
- STARTED (вызов onStart()) — фрагмент видим, но с ним нельзя взаимодействовать
- RESUME (вызов onResume()) — все анимации и тд отработали и с фрагментом можно взаимодействовать
- STARTED (вызов onPause()) — фрагмент видим, но с ним нельзя взаимодействовать
- CREATED (вызов onStop())
onStop() — фрагмент больше не видим
onSaveInstanceState() — используется для сохранения состояния фрагмента (например при configuration change)
onDestroyView() — View уничтожено
- DESTROYED
onDestroy() — фрагмент уничтожен