Можно viewmodel scope использовать, тогда отменять не надо в onClear. Есть коделаба от Гугл, почитайте😊
Ну и с диспетчерами как-то сложно, не проще на мейне запустить и через withcontext получить response?)
viewmodel scope вроде сам умирает вместе с viewmodel. если не ошибаюсь
не знаю. по этому и спрашиваю)
Кстати, если делать viewmodelscope - job сохранять не надо и можно просто поставить равно после скобок функции
Правильно. Соответственно все его корутины сами отменятся. Соответственно job хранить не надо.
То есть лучше всего будет сделать так?
А зачем withContext(Dispatchers.Main)? Этот скоуп и так в мейн потоке запускается
Ну я этого не знал. Первый вариант вообще был такой.
Я тоже только недавно корутины открыл для себя. И такой вопрос, а разве в мейн потоке их запускать ок ? Если к примеру работать с REST API и нужно ждать ответ от сервера, стоит ли их там запускать?
Ну философия корутин такая, что все саспенд методы должны работать из мейн потока без проблем, то есть ты в самом методе, который тяжёлый должен вызывать переход в другой поток
т.е если я хочу обратиться к серверу с get запросом, мне это можно все запустить в GlobalScope.launch ?
Ну для андроида есть всякие lifecycleScope, viewModelScope и т.д., но да
Так получше, да)
Обсуждают сегодня