4

在我的 Android 应用程序中,我使用 Room API 来保存来自网络的数据。该应用程序分为多个进程,其中一个负责同步数据(实现 SyncAdapter)。UI 在不同的进程上运行,它有自己的 DAO 来访问数据库。我的问题是,当 SyncAdapter 将新数据写入数据库时​​,我在 UI 进程上查询的 LiveData 没有得到任何更新。因为数据库是在进程之间共享的,所以我希望在所有具有反映数据库的 LiveData 的进程上调用 OnChanged,这意味着所有进程都可以观察数据库的变化

4

2 回答 2

3

房间 2.1.0 中引入的 enableMultiInstanceInvalidation 可能对您有帮助 官方文档

于 2020-01-30T11:15:41.120 回答
1

您将需要实现自己的 IPC 机制以将事件从进程传递到进程。这与直接使用 SQLite 或使用大多数其他观察者框架(例如,数据绑定可观察对象)没有显着不同。

或者,切换到具有单个进程,在这种情况下,您现有的实现可能工作得很好。

于 2017-07-29T16:12:32.817 回答