Выбор ответа Middle Жизненный цикл Activity и Fragment спрашивают часто обновлено
Жизненный цикл фрагмента и его view
Вопрос
Фрагмент ушёл в back stack при замене другим фрагментом. Какие колбэки он получит?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: onPause, onStop, onDestroyView, но не onDestroy. При замене с добавлением в back stack view фрагмента уничтожается, а сам фрагмент остаётся в памяти, чтобы вернуться.
Варианты ответа
onPause,onStop,onDestroy,onDetach- Никаких: фрагмент остаётся активным под новым
onPause,onStop,onDestroyView, но неonDestroyправильный ответ- Один
onDestroyView, безonPauseиonStop
Разбор
При замене с добавлением в back stack view фрагмента уничтожается, а сам фрагмент остаётся в памяти, чтобы вернуться. Поэтому onDestroyView вызывается, а onDestroy и onDetach нет. При возврате снова будет onCreateView. Отсюда правило: всё, что связано с view (binding, подписки на UI), привязывают к viewLifecycleOwner.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Жизненный цикл Activity и Fragment»
- Порядок колбэков при переходе между Activity
- TransactionTooLargeException и Bundle
- Колбэки Activity
- Состояния Lifecycle
- Почему onPause должен быть быстрым
- Когда вызывается onSaveInstanceState
- Порядок колбэков Activity от запуска до закрытия
- Жизненный цикл фрагмента