Выбор ответа Junior ViewModel и сохранение состояния спрашивают часто обновлено

Когда вызывается onCleared

Вопрос

Когда у ViewModel вызывается onCleared()?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Когда владелец уходит окончательно: finish(), «Назад». onCleared вызывается, когда ViewModelStore очищается: владелец уходит навсегда.

Варианты ответа

  1. При каждом повороте экрана перед созданием новой Activity
  2. В onStop Activity, когда экран перестаёт быть видимым
  3. Когда владелец уходит окончательно: finish(), «Назад»правильный ответ
  4. При смерти процесса, чтобы ViewModel успела сохранить данные

Разбор

onCleared вызывается, когда ViewModelStore очищается: владелец уходит навсегда. При повороте store переносится, поэтому onCleared не вызывается. В onStop экран просто не виден. При смерти процесса никакие колбэки не вызываются, процесс завершается целиком.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме