Запрос запущен в глобальной области, а экран закрыли
Во ViewModel профиля написано так:
fun loadProfile() {
GlobalScope.launch {
val profile = api.getProfile()
_state.value = Profile(profile)
}
}
Пользователь открыл экран и через секунду нажал «назад». Что произойдёт с этим запросом?
- Корутина отменится вместе с экраном: любой запуск привязан к жизненному циклу компонента, из которого он сделан
- Результат придёт, но только при повторном открытии экрана: до этого момента корутина остаётся приостановленной
- Корутина вообще не запустится, пока экран снова не станет видимым: глобальная область стартует работу лениво
- Запрос продолжит выполняться и запишет результат в состояние ViewModel, которая уже никому не нужна
