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被销毁时,它将耗尽。
coroutineScopesupervisorScope是可挂起的函数,它们建立自己的本地范围,在该范围内运行传递给它们的块,并在完成所有内部工作(包括在其范围内启动的所有协程)后返回。

09-28 10:01