Выбор ответа Junior ViewModel и сохранение состояния спрашивают часто обновлено
Когда вызывается onCleared
Вопрос
Когда у ViewModel вызывается onCleared()?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Когда владелец уходит окончательно: finish(), «Назад». onCleared вызывается, когда ViewModelStore очищается: владелец уходит навсегда.
Варианты ответа
- При каждом повороте экрана перед созданием новой Activity
- В
onStopActivity, когда экран перестаёт быть видимым - Когда владелец уходит окончательно:
finish(), «Назад»правильный ответ - При смерти процесса, чтобы ViewModel успела сохранить данные
Разбор
onCleared вызывается, когда ViewModelStore очищается: владелец уходит навсегда. При повороте store переносится, поэтому onCleared не вызывается. В onStop экран просто не виден. При смерти процесса никакие колбэки не вызываются, процесс завершается целиком.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.