globalScope,coroutineScope和viewModelScope有什么区别?何时在仍在开发中的viewModelScope的情况下在Kotlin编程中使用它们?
我已经通过下面的链接
https://medium.com/androiddevelopers/coroutines-on-android-part-iii-real-work-2ba8a2ec2f45
我知道corountineScope将具有作用域,直到{}被调用为止。
另外,我们还有supervisorScope,它类似于coroutineScope,
viewModelScope具有直到ViewModel的范围。
全局范围-在应用程序正常工作或 Activity 之前,它是否一直存在?
最佳答案
GlobalScope
是一个单例作用域,它返回一个完全空的coroutineContext
。由于没有与之关联的Job
,因此您无法取消它,因此它的生命周期基本上是“永远”的。
每个viewModelScope
实例都附加了一个单独的ViewModel
实例。当ViewModel
被销毁时,它将耗尽。coroutineScope
和supervisorScope
是可挂起的函数,它们建立自己的本地范围,在该范围内运行传递给它们的块,并在完成所有内部工作(包括在其范围内启动的所有协程)后返回。