2017-07-07 24 views
0

我使用的是Android房加載數據。 我的查詢是這樣的:Android的房間 - 發射單項更新

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

當調用GETALL()我得到第一時間的所有項目。 然後,我正在使用網絡請求更新所有項目。 什麼情況是,如果我有100個項目中,GETALL()將發出100倍的整個列表,將更新RecyclerView 100倍。

用於獲取已改變單一項目,並呼籲notifyItemChanged

最佳實踐?

謝謝。

+0

「我使用的是網絡請求更新的所有項目」 - 你怎麼做呢?一個DAO電話? 100個DAO電話?還有別的嗎? – CommonsWare

+0

現在將其更改爲一個DAO調用 – Shahar

+0

並且...是否清除了問題?我沒有測試過這種情況,所以我希望一個DAO調用將導致通過'Flowable'一個更新,但有一個原因是房間在阿爾法... :-) – CommonsWare

回答

0

回答我的問題,如果有人得到了同樣的問題。 而是保存在更新後的每個項目,我救他們都曾經 調用@Insert用(TrackedItem ...項)。 它只會發出一個更新。