Android Room - 发出单项更新

时间:2017-07-07 22:25:27

标签: android rx-java2 android-room

我正在使用Android Room加载数据。 我的疑问是:

@Query("SELECT * FROM TrackedItem where isArchived = 0 ORDER BY creationDate DESC")
Flowable<List<TrackedItem>> getAll();

调用getAll()时,我第一次收到所有项目。 然后,我正在使用网络请求更新所有项目。 会发生的是,如果我有100个项目,则getAll()将发出整个列表的100倍,这将更新RecyclerView 100次。

获取已更改的单个项目并调用notifyItemChanged的最佳做法?

感谢。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,如果有人得到同样的问题。 我没有在更新后保存每个项目,而是将所有项目保存一次 使用(TrackedItem ... items)调用@Insert。 这只会发出一次更新。