我正在将现有应用程序从Java转换为Kotlin。该应用程序创建一个在后台线程中运行的IntentService,其任务是执行一些操作,这些操作可以反复无限地阻止线程(例如网络调用,数据库交互)与suspend
函数。由于“当前线程”实际上是后台线程,因此我没有阻止UI。
在当前线程上使用runBlocking
来运行所有挂起函数是一个好习惯吗?还是有更好的方法?
这正是runBlocking
的用法。 runBlocking
被添加到协同程序中,以便在coroutines
的用户和正在执行代码阻塞的其他地方之间建立桥梁。如果你想要一个线程被阻塞并等待执行一个协同程序,你应该总是使用runBlocking
。