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

Сбор потока продолжается, когда экран ушёл в фон

Экран котировок подписан на поток обновлений так:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    viewLifecycleOwner.lifecycleScope.launch {
        viewModel.quotes.collect { render(it) }
    }
}

Пользователь сворачивает приложение и оставляет его в фоне. Что происходит с этим сбором?

  • Сбор прекращается насовсем: при уходе в фон область отменяется, и после возврата данные не пойдут без ручного перезапуска подписки
  • Ничего: область жизненного цикла сама приостанавливает сбор при уходе экрана в фон и возобновляет его при возврате
  • Сбор продолжается в фоне и тратит сеть с батареей: область отменяется только при уничтожении вёрстки
  • Приложение падает при первом обновлении в фоне, потому что обновлять View у невидимого экрана система не разрешает

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

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

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

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