Сбор потока продолжается, когда экран ушёл в фон
Экран котировок подписан на поток обновлений так:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
viewLifecycleOwner.lifecycleScope.launch {
viewModel.quotes.collect { render(it) }
}
}
Пользователь сворачивает приложение и оставляет его в фоне. Что происходит с этим сбором?
- Сбор прекращается насовсем: при уходе в фон область отменяется, и после возврата данные не пойдут без ручного перезапуска подписки
- Ничего: область жизненного цикла сама приостанавливает сбор при уходе экрана в фон и возобновляет его при возврате
- Сбор продолжается в фоне и тратит сеть с батареей: область отменяется только при уничтожении вёрстки
- Приложение падает при первом обновлении в фоне, потому что обновлять View у невидимого экрана система не разрешает
