在我的Android应用程序中,我使用Room API来保存来自网络的数据。该应用程序分为几个进程,其中一个负责同步数据(实现SyncAdapter)。 UI在不同的进程上运行,它有自己的DAO来访问数据库。 我的问题是,当SyncAdapter将新数据写入数据库时,UI进程上的LiveData I查询没有得到任何更新。因为DB是在进程之间共享的,所以我期望在具有反映数据库的LiveData的所有进程上调用OnChanged,这意味着所有进程都可以观察到数据库更改
答案 0 :(得分:3)
enableMultiInstanceInvalidation可能对您有帮助 official docs
答案 1 :(得分:1)
您需要实现自己的IPC机制,以便将事件从进程传递到进程。这与直接使用SQLite或使用大多数其他观察者框架(例如,数据绑定可观察对象)没有显着差异。
或者,切换到单个进程,在这种情况下,您现有的实现可能正常工作。