Вступить в клуб →
лёгкаявопросКорутины и Flow

Запрос запущен в глобальной области, а экран закрыли

Во ViewModel профиля написано так:

fun loadProfile() {
    GlobalScope.launch {
        val profile = api.getProfile()
        _state.value = Profile(profile)
    }
}

Пользователь открыл экран и через секунду нажал «назад». Что произойдёт с этим запросом?

  • Корутина отменится вместе с экраном: любой запуск привязан к жизненному циклу компонента, из которого он сделан
  • Результат придёт, но только при повторном открытии экрана: до этого момента корутина остаётся приостановленной
  • Корутина вообще не запустится, пока экран снова не станет видимым: глобальная область стартует работу лениво
  • Запрос продолжит выполняться и запишет результат в состояние ViewModel, которая уже никому не нужна

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела