Разница между globalScope, corountineScope и viewScope в Kotlin - PullRequest
4 голосов
/ 10 января 2020

В чем разница между globalScope, coroutineScope и viewModelScope и когда их использовать внутри Kotlin программирования с viewModelScope, который еще находится в разработке?

Я прошел по ссылке ниже https://medium.com/androiddevelopers/coroutines-on-android-part-iii-real-work-2ba8a2ec2f45

Я знаю, что corountineScope будет иметь область действия до {}, для которой он был вызван. Также у нас есть supervisorScope, который похож на coroutineScope, viewModelScope имеет область видимости до ViewModel. Глобальный охват - есть ли у него до того, как приложение работает или работает?

1 Ответ

5 голосов
/ 10 января 2020

GlobalScope - это одноэлементная область, которая возвращает полностью пустое coroutineContext. Поскольку с ним не связано Job, вы не можете отменить его, поэтому его жизненный цикл в основном «навсегда».

Отдельный экземпляр viewModelScope присоединяется к каждому экземпляру ViewModel. Он заканчивается, когда ViewModel уничтожен.

coroutineScope и supervisorScope - это приостанавливаемые функции, которые устанавливают sh свою собственную локальную область, запускают блок, который вы передаете им в этой области, и возвращаете когда вся внутренняя работа завершена, включая все сопрограммы, запущенные в их пределах.

...