0

我正在使用 Android Room 加载数据。我的查询是这样的:

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

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

获取已更改的单个项目并调用 notifyItemChanged 的​​最佳实践?

谢谢。

4

1 回答 1

0

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

于 2017-07-08T09:15:22.913 回答