Kotlin 在后台线程上运行阻塞

Kotlin runBlocking on background thread

我正在将现有应用程序从 Java 转换为 Kotlin。 该应用程序创建了一个 IntentService,它 运行 在后台线程中运行,并负责执行一些阻塞线程的操作(例如网络调用、数据库交互)suspend 无限期地重复运作。 因为 "current thread" 实际上是一个后台线程,所以我没有阻塞 UI.

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

也就是runBlocking的用法。 runBlocking 被添加到协同程序中,以在 coroutines 的用户和其他正在执行代码的地方之间架起一座桥梁。如果你想让一个线程被阻塞并等待一个协程的执行,你应该总是使用runBlocking.