Выбор ответа Middle Жизненный цикл Activity и Fragment спрашивают часто обновлено
ViewModel и смерть процесса
Вопрос
Приложение в фоне, система убила процесс, пользователь вернулся. Что сохранилось?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Данные из SavedStateHandle/Bundle и стек экранов; ViewModel новая. Android восстанавливает стек Activity и фрагментов и передаёт им сохранённые Bundle, поэтому пользователь видит тот же экран.
Варианты ответа
- Данные из
SavedStateHandle/Bundle и стек экранов; ViewModel новаяправильный ответ - ViewModel со всеми полями: она хранится в
ViewModelStoreсистемы - Ничего: приложение стартует с главного экрана с чистым стеком
- Данные в
companion objectи синглтонах, а экраны создаются заново
Разбор
Android восстанавливает стек Activity и фрагментов и передаёт им сохранённые Bundle, поэтому пользователь видит тот же экран. Но процесс новый: ViewModel и все объекты в памяти, включая companion object и синглтоны, создаются заново. Выживает только сохранённое в Bundle (в том числе SavedStateHandle) и персистентные данные.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Колбэки при повороте экрана
Следующий вопрос
Что происходит с Activity при повороте экрана
Ещё по теме «Жизненный цикл Activity и Fragment»
- Порядок колбэков при переходе между Activity
- TransactionTooLargeException и Bundle
- Колбэки Activity
- Состояния Lifecycle
- Что переживает поворот и смерть процесса
- Жизненный цикл фрагмента и его view
- Гарантирован ли onDestroy
- Почему onPause должен быть быстрым