gpt4 book ai didi

android - 协程 : Runblocking freeze Android UI

转载 作者:行者123 更新时间:2023-12-02 13:28:28 24 4
gpt4 key购买 nike

我正在 Kotlin 开发一个 android 应用程序。
验证输入表单后,我启动 3 个作业以同时执行 3 个 http 调用:

val jobA = CoroutineScope(IO).launch {
// saves some data in my database
}
val jobB = CoroutineScope(IO).launch {
// saves an image in my aws bucket
}
val jobC = CoroutineScope(IO).launch {
// if exists, deletes the old image in my aws bucket
}
在启动这 3 个作业之前,我启动了一个加载器动画
(我正在使用这个库: https://github.com/81813780/AVLoadingIndicatorView)
我需要等待我的 3 个工作完成而不卡住 UI(或至少是动画)。
我尝试使用 runBlocking 但它卡住了用户界面...
runBlocking() {
jobA!!.join()
jobB!!.join()
jobC!!.join()
}
如何在不卡住 UI 的情况下等待我的 3 个工作?
提前致谢,
对不起我的英语不好,
托马斯

最佳答案

您可以尝试使用 Main 启动另一个协程CorotineContext并在那里等待工作:

CoroutineScope(Main).launch {
jobA!!.join()
jobB!!.join()
jobC!!.join()
}

关于android - 协程 : Runblocking freeze Android UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62900131/

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