希望你能帮帮我。
我是一个新的工作与Android Jetpack,具体与房间组件。正如他们在文档中提到的,在主线程中访问数据库是一种不好的做法,所以我想知道我们如何访问数据库。我们需要创建一个 "Worker "和一个 "WorkRequest",然后用WorkManager在后台线程中进行查询?还是有更好的方法?
我是 WorkManager
不是正确的访问方式 Room
数据库。原因是,。
WorkManager
是用来运行 延期,保证后台异步工作时,工作的。 限制 满意
所以,有几个 WorkManager
的处理方式,你不符合访问 Room
数据库或一般来说任何数据库。
WorkManager
是可以推迟的。WorkManager
满足约束条件时运行。相反,还有其他方法,比如 Thread
, Executors
, Kotlin Coroutines还 LiveData
提供对数据库查询的异步访问。
你需要创建一个新的线程来运行Room查询。
如果你使用的是Kotlin,那么Coroutines将是你多线程的最佳选择我建议你关注这个课程。google代码实验室。
如果你熟悉反应式编程,也可以使用RxJava进行多线程。