Если операции внутри CoroutineScope(job+Dispatchers.Main){...}
выполняются в основном потоке, то почему это не нарушает требование Android о том, что медленные (блокирующие) операции (сеть и т. д.) не могут выполняться в основном потоке/потоке пользовательского интерфейса? Я могу запускать блокирующие операции с этой областью действия, и пользовательский интерфейс вообще не зависает.
Буду признателен, если кто-нибудь объяснит, что происходит под капотом. Я предполагаю, что это похоже на то, как JavaScript управляет операциями блокировки с циклом событий, но я изо всех сил пытаюсь найти какие-либо соответствующие материалы.
I can run blocking operations with this scope and the UI does not freeze at all.
? Пожалуйста, приведите пример? - person Dmitrii Leonov   schedule 18.02.2020delay(1000)
. Разве это не должно вызывать появление экрана ANR, если я делаю это в потоке пользовательского интерфейса? - person 372   schedule 18.02.2020