gpt4 book ai didi

kotlinx.coroutines - kotlin 协程 - 什么是默认范围?

转载 作者:行者123 更新时间:2023-12-05 04:01:55 32 4
gpt4 key购买 nike

如果我没有指定任何内容,协程默认范围如何工作。让我们看一下这个例子:

class MyAppCompatActivity:AppCompatActivity{
fun getContact() {
GlobalScope.launch {
val contact = contacts.getContact() // suspended function
withContext(Dispatchers.Default) {
phoneContact.value = contact }
}
}
}

它只是在检索到联系人时更新 UI。这被添加到 的全局范围内,因此协程的生命周期可以是整个应用程序的生命周期。

但是让我们在没有 globalScope 的情况下再次做同样的事情:

class MyAppCompatActivity:AppCompatActivity{
fun getContact() {
launch {
val contact = contacts.getContact() // suspended function
withContext(Dispatchers.Default) {
phoneContact.value = contact }
}
}
}

既然我已经删除了 globalScope,getContact 的生命周期是多长?它是否绑定(bind)到 MyAppCompatActivity 范围?

最佳答案

您的代码将无法编译,因为 launch 必须在 CoroutineScope 对象上调用。该对象指定协程的生命周期。由于您的 Activity 未实现范围,因此它将无法编译或调用完全不相关的 launch 函数。

关于kotlinx.coroutines - kotlin 协程 - 什么是默认范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54850257/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com