Android 如何正确处理房间内的穿线问题

Android 如何正确处理房间内的穿线问题,android,android-room,android-thread,Android,Android Room,Android Thread,我对房间感到困惑,在文件中找不到答案 因此,库在单独的线程上强制使用查询,这是可以理解的。但是,删除查询似乎不包括在该限制中,可以从UI线程自由调用。它们也总是返回一个原始的输出值,而没有机会将其包装成一个可观察的值 在房间中使用删除呼叫的正确方法是什么?它应该在单独的线程上运行吗?如果没有,那么性能和并发修改呢?如果您使用LiveData从文件室检索数据,它将在工作线程中执行。对于其他查询,您可以使用Executors和Repository模式。您可以查看此页面以了解更多信息 您可以查看Rx和

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

因此,库在单独的线程上强制使用查询,这是可以理解的。但是,删除查询似乎不包括在该限制中,可以从UI线程自由调用。它们也总是返回一个原始的输出值,而没有机会将其包装成一个可观察的值


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

如果您使用LiveData从文件室检索数据,它将在工作线程中执行。对于其他查询,您可以使用Executors和Repository模式。您可以查看此页面以了解更多信息

您可以查看Rx和其他架构组件示例


问题作者的分析说明:


在示例中,他们使用
Completable
包装房间删除调用,然后将其安排到
io()
调度程序中,对空的完成调用和任何错误作出反应。具体的代码可以找到。

我有一个基于Rx的存储库模式(没有LiveData,也没有真正的机会重构成它)。然后,我是否应该将delete调用包装成single并在后台线程上订阅它们?如果是这样的话,为什么Room的Rx集成一开始就不提供单次删除返回?我不使用Rx,您可以查看这些详细使用情况。令人惊讶的是,这正是我所需要的!:-D请用这个链接更新答案,这样我就可以接受它是正确的。谢谢我在您提供的链接下添加了一个小注释,其中包含代码的摘要,并接受了答案。再次感谢!有那张便条真好。在我学习了RxJava之后,我将再次查看它。也谢谢。