【发布时间】:2021-03-30 06:01:13
【问题描述】:
在我们的应用程序中有很多查询,现在我们正在使用 ROOM,我想确认在我们这样使用之前使用 Coroutine 的正确方法是什么
在道
@Query("SELECT * FROM VISITS")
suspend fun getAllVisits(): List<Visits>
我们正在变成这样
fun getAll(visit: Visits?) = runBlocking {
Log.i(TAG, "addOrUpdateRecord")
try {
val list = ArrayList<Visits>()
list.addAll(async {
visitsDao.getAllVisits()
}.await())
}
但是在一些文章中我读到运行阻塞仅用于测试而不是生产请指导我正确的方式谢谢
【问题讨论】:
-
你可以使用 launch {} 或 withContext(io) {}
-
我无法在没有 runblocker 的情况下使用 withcontext
-
您需要创建扩展 ViewModel() 的类并只实现 @Glenn Sandoval 。在这里阅读更多developer.android.com/topic/libraries/architecture/viewmodel
标签: android kotlin android-room kotlin-coroutines