2017-11-12 22 views
0

私のAndroidアプリでは、サーバー上のJSONから取得したオブジェクトのリスト(従業員)があります。アプリケーションを開くたびにJSONを解析し、ArrayListを作成してRecyclerViewに移入します。私はデータベースを作成し、JSONの代わりにデータベースからデータをロードしたいと思います(オフラインでも高速に動作するように)。Android:jsonのデータをデータベースと比較してください。

私の質問は、私はJSONとデータベースで同じデータを持つようにデータベースを更新したままにしますか?

これを行うにはどのような方法が最適ですか?私はGmailのアプリを開くと気付きます。たとえば、オフラインになっても電子メールが読み込まれるので、データベースも使用している必要があります。

EDIT:DBFlowを使用して解決し、リスト全体でsave()を呼び出すだけで、行を更新するか新しいものを挿入するかが自動的に決定されます。

+0

JSONをデバイス上のファイルとして保存することをお勧めします。ファイルを文字列として読み込んで、既にデータをRecycleViewにロードする必要があるパーサでリロードします。 – Barns

+0

明らかに、解析されたJSONデータを使用すると、データベースを更新できます。あなたは好きなように比較することができます。文字列は、名前や文字列、整数などの文字列に適しています。必要に応じて。私は、Gmailの例を削除して、データベースを伝え、比較しないようにすべきだと思います。それは2つの別々の問題です。 – CmosBattery

答えて

1
  1. シナリオ「DBが空である」:表示空のビューメッセージとAPIエンドポイントからデータを取得 - >データベースにそれを保存し、その後、データベースからRecyclerViewを投入。

  2. シナリオ「DBは空ではありません」:データベースからデータを取り込みます - 新しいデータをフェッチしようとします。接続がない場合は古いデータが表示されます。

さらに、同じデータを再読み込みしているときにグリッチを防ぐために、RecyclerViewを読み込むカスタムクラスを比較できます。

関連する問題