GlobalScope
- это одноэлементная область, которая возвращает полностью пустое coroutineContext
. Поскольку с ним не связано Job
, вы не можете отменить его, поэтому его жизненный цикл в основном «навсегда».
Отдельный экземпляр viewModelScope
присоединяется к каждому экземпляру ViewModel
. Он заканчивается, когда ViewModel
уничтожен.
coroutineScope
и supervisorScope
- это приостанавливаемые функции, которые устанавливают sh свою собственную локальную область, запускают блок, который вы передаете им в этой области, и возвращаете когда вся внутренняя работа завершена, включая все сопрограммы, запущенные в их пределах.