Выбор ответа Middle ViewModel и сохранение состояния обновлено
viewModelScope и lifecycleScope
Вопрос
Чем запрос, запущенный в viewModelScope, отличается от запущенного в lifecycleScope Activity?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: viewModelScope переживает поворот, lifecycleScope Activity при нём отменяется. Scope живёт столько же, сколько владелец.
Варианты ответа
viewModelScopeпереживает поворот,lifecycleScopeActivity при нём отменяетсяправильный ответ- Ничем: оба scope отменяются только при окончательном закрытии экрана
viewModelScopeработает наDispatchers.IO, аlifecycleScopeна главномlifecycleScopeне отменяется при повороте, аviewModelScopeотменяется
Разбор
Scope живёт столько же, сколько владелец. ViewModel переживает поворот, поэтому её запрос продолжится. Activity при повороте уничтожается, и запрос в её lifecycleScope отменится и начнётся заново. Оба scope по умолчанию на Dispatchers.Main.immediate, а lifecycleScope отменяется при ON_DESTROY.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.