在我的 Android 应用程序中,我使用 Room API 来保存来自网络的数据。该应用程序分为多个进程,其中一个负责同步数据(实现 SyncAdapter)。UI 在不同的进程上运行,它有自己的 DAO 来访问数据库。我的问题是,当 SyncAdapter 将新数据写入数据库时,我在 UI 进程上查询的 LiveData 没有得到任何更新。因为数据库是在进程之间共享的,所以我希望在所有具有反映数据库的 LiveData 的进程上调用 OnChanged,这意味着所有进程都可以观察数据库的变化
问问题
1367 次
2 回答
3
房间 2.1.0 中引入的 enableMultiInstanceInvalidation 可能对您有帮助 官方文档
于 2020-01-30T11:15:41.120 回答
1
您将需要实现自己的 IPC 机制以将事件从进程传递到进程。这与直接使用 SQLite 或使用大多数其他观察者框架(例如,数据绑定可观察对象)没有显着不同。
或者,切换到具有单个进程,在这种情况下,您现有的实现可能工作得很好。
于 2017-07-29T16:12:32.817 回答