我正在将现有应用程序从Java转换为Kotlin。
该应用程序创建一个 IntentService ,该线程在后台线程中运行,并负责执行一些操作,这些操作会无限期地重复使用suspend
函数来阻塞线程(例如,网络调用,数据库交互)。
由于“当前线程”实际上是后台线程,因此我不会阻止UI。
在当前线程上使用runBlocking
来运行所有挂起的函数是一种好习惯吗?还是有更好的方法?
答案 0 :(得分:1)
这正是runBlocking
的用法。 runBlocking
被添加到协程中,以在coroutines
的用户和其他阻塞执行代码的位置之间建立桥梁。如果要阻止线程并等待协程的执行,则应始终使用runBlocking
。