android - 在 Alert Dialog Builder 中启动协程

标签 android kotlin scope android-alertdialog kotlin-coroutines

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

示例代码:

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

第一个作用域是否嵌套了第二个作用域,或者第一个协程是否完成了它的工作?

最佳答案

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

关于android - 在 Alert Dialog Builder 中启动协程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73500701/

相关文章:

android - Gradle 升级后 Koush ION 崩溃

java - 从 Adapter 中刷新整个 RecyclerView

android - Kotlin fragment 类型不匹配

android - SharedViewmodel 的实例永远不会消亡吗?

javascript - JavaScript 中是否有任何方法可以使用字符串格式的名称来调用在另一个函数范围内声明的函数?

javascript - 在本地范围内初始化 JavaScript 变量

java - Dagger:android.content.Context 上没有可注入(inject)成员。你想添加一个可注入(inject)的构造函数吗?模块类要求

android - 将回调 hell 转换为延迟对象

r - 在 R 中传递大对象的内存有效方式

java - 在应用程序完全重启之前不要再次显示 mainactivity