Android室查询数据库更改

我正在使用最新的Room Persistance Library编写应用程序。 该应用程序讽刺地显示项目列表,并更新此列表随着数据的变化。

当新项目被插入到表格中或者更新时,我希望列表能够自动更新。

我到目前为止尝试了香草LiveDataLiveData 。 声明都支持这个功能,正如在文档和博客中所述: https : //medium.com/google-developers/room-rxjava-acb0cd4f3757

以下是Kotlin中的ViewModel片段:

 messagesFlowable = db.messagesDao().all() messagesFlowable .observeOn(AndroidSchedulers.mainThread()) .subscribe { Log.d(TAG, "Received 1 list of %s items", it.size) messages.value = it } 

别的地方,数据库是这样修改的:

 mDb.messagesDao().add(Message("Some data")) 

更新不会推送给观察员。 我想我错过了什么,但是什么?

更新:此问题已解决,答案如下。

我会回答我自己的问题,因为解决方案没有记录。

它看起来像你需要有相同的数据库对象的实例。 在我的情况下,我的Dagger2被错误地配置为每次注入新的DB实例,所以我的RepositoryViewModel结束了2个独立的实例。

一旦我使用所有相关方共享的单一数据库实例,所有更新都将正确分发。