Выбор ответа Middle ViewModel и сохранение состояния обновлено

viewModelScope и lifecycleScope

Вопрос

Чем запрос, запущенный в viewModelScope, отличается от запущенного в lifecycleScope Activity?

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

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

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

Коротко

Правильный ответ: viewModelScope переживает поворот, lifecycleScope Activity при нём отменяется. Scope живёт столько же, сколько владелец.

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

  1. viewModelScope переживает поворот, lifecycleScope Activity при нём отменяетсяправильный ответ
  2. Ничем: оба scope отменяются только при окончательном закрытии экрана
  3. viewModelScope работает на Dispatchers.IO, а lifecycleScope на главном
  4. lifecycleScope не отменяется при повороте, а viewModelScope отменяется

Разбор

Scope живёт столько же, сколько владелец. ViewModel переживает поворот, поэтому её запрос продолжится. Activity при повороте уничтожается, и запрос в её lifecycleScope отменится и начнётся заново. Оба scope по умолчанию на Dispatchers.Main.immediate, а lifecycleScope отменяется при ON_DESTROY.

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

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

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