android - Kotlin 在后台线程上运行阻塞

标签 android multithreading kotlin kotlinx.coroutines

我正在将现有应用从 Java 转换为 Kotlin。 该应用创建了一个在后台线程中运行的 IntentService,其任务是执行一些阻塞线程的操作(例如网络调用、数据库交互),并使用 suspend 函数重复且无限期地执行. 由于“当前线程”实际上是一个后台线程,所以我不会阻塞 UI。

在当前线程上使用 runBlocking 来运行所有挂起函数是一个好习惯吗?或者有更好的方法?

最佳答案

这正是runBlocking的用法。 runBlocking 被添加到协程中,以在 coroutines 的用户和其他正在执行代码的地方之间架起一座桥梁。如果您希望线程被阻塞并等待协程的执行,您应该始终使用 runBlocking

关于android - Kotlin 在后台线程上运行阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54423748/

相关文章:

java - 如何在我当前的 android 系统中获取我的 wifi 热点 ssid

android - 为具有大量开源依赖项的 aar 提供 jar 支持

java - 生产者/消费者线程根本没有输出数据

android - Kotlin + MVP - 意外覆盖

java - 构建时 Android 访问被拒绝

java - JAVA(Android)解密出错

android - Android 中的星形按钮

java - 带有线程的表的总和

java - 创建包含不同类型对象的哈希集

kotlin getparameters函数不起作用