如何正确处理Room的线程

时间:2018-07-17 11:57:18

标签: android android-room android-thread

我对房间感到困惑,在文档中找不到答案。

因此,该库在单独的线程上强制使用查询,这是可以理解的。但是,似乎删除查询不包含在此限制中,并且可以从UI线程中自由调用。他们还总是返回原始输出值,而没有机会将其包装到Observable中。

房间然后中使用删除呼叫的正确方法是什么?是否应该在单独的线程上运行?如果没有,那么性能和并发修改又如何呢?

1 个答案:

答案 0 :(得分:3)

如果您使用LiveData从Room检索数据,它将在辅助线程中执行。对于其他查询,您可以使用执行程序和存储库模式。您可以在此页面中查看guide to app architecture

您可以在link中查看有关Rx和其他体系结构组件示例的信息。


问题作者的分析笔记:

在示例中,他们使用Completable包装 Room 删除呼叫,然后将其调度到io()调度程序中< / strong>,对空的完整和任何错误作出反应。可以在here中找到该特定代码。