2017-07-07 14 views
0

私はAndroid Roomを使用してデータを読み込みます。 ()のgetAllを呼び出すとき、私は初めてで、すべてのアイテムを取得Androidルーム - 単一アイテムのアップデートを送信

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

: 私のクエリはこれです。 次に、ネットワークリクエストを使用してすべてのアイテムを更新しています。 何が起こるかは、100個のアイテムがある場合、getAll()はリスト全体を100回出力し、RecyclerViewを100回更新します。

変更された単一のアイテムを取得し、notifyItemChangedを呼び出すためのベストプラクティスですか?

ありがとうございました。

+0

"ネットワークリクエストを使用してすべてのアイテムを更新しています" - これはどうやってですか? 1つのDAOコール? 100 DAOが呼びますか?他に何か? – CommonsWare

+0

は今すぐDAOの電話に変更しました – Shahar

+0

そして...問題を解決しましたか?私はこのシナリオをテストしていないので、単一のDAO呼び出しが 'Flowable'を通じた単一の更新をもたらすことを期待しますが、ルームがアルファにある理由があります:-) – CommonsWare

答えて

0

誰かが同じ問題を抱えたら、私自身の質問に答える。 更新後に各アイテムを保存するのではなく、@ TrackbackItem ... itemsを使用して を呼び出すと、すべてを保存します。 は1つのアップデートのみを送信します。

関連する問題