在Alert Dialog Builder中启动协同程序



如果我有一个挂起函数在协同程序中运行,并且在该函数中我构建了一个alertDialog,这是否意味着构建器中的所有内容都与我的协同程序分开运行?如果我从相同的范围启动协同程序,它是否被认为是嵌套的?

示例代码:

coroutineScope.launch{
foo()
}
suspend fun foo(){
....
AlertDialog.Builder(activity)
.setOnDismissListener {
coroutineScope.launch { foo() }
}.show()
}

第一个作用域将第二个作用域嵌套,还是第一个协同程序完成了它的工作?

一旦创建对话框并取消其所有子项,第一个协程作用域就完成了,这就是为什么不能从警报对话框生成器内部启动挂起函数的原因。因此,您正在启动的第二个协同程序不是嵌套的。

最新更新