2017-01-18 11 views
0

サーバアプリケーション でデータストレージを実行しています。 しばらくして、サーバーへのデータ更新のための簡単なAndroidアプリを作成しました。ここまでは順調ですね。
しかし、私たちがネットワーク接続に直面していた問題では、ネットワーク接続が不良なときにデータを完全にオフラインに維持し、適切なネットワークがあるときにデータを同期したかったので、私はこれをやっている方法
サーバからアプリケーションへのデータの同期を実現するためのベストプラクティス(アーキテクチャレベル)

1)され、我々は、サーバー側からのMySQLでは5つのテーブル、同じ構造を持つ次に、同じテーブルを持っている場合ように、私は私のAndroidアプリの中でSQLiteのに構築しましたとしましょうユーザーはあたかも違いがないかのようにアプリを使用できるはずです。私は追加された独立したテーブルを同期させる必要があるオフラインアップデートのためにSQLiteに追加しました。

2)私は適切なネットワークでアプリケーションにログインするたびに、SQLiteのすべてのテーブルを切り捨てて、サーバーから新しい新しいデータを取得して保存しています。だからここでは、ログインとランディングページの間に、サーバーは多くのデータを持っているので、データの取得と保存はアプリに多くの時間を要します。ここで私はパフォーマンスを達成するための他の方法を知らない。

ここで上記の点を考慮すると、サーバーからデータをフェッチし、サーバーからすべてのデータを切り捨てるのではなく、既存のデータベースとSQLiteで同期する方が良いでしょうか?
私は熱心にソリューションを探していました。誰か助けてもらえますか?

+0

を持っているすべてのオブジェクトはまた、あなたがキャッシュされた結果を使用したり、データが変更された場合にのみデータをフェッチすることができ、そのようにボレーのようないくつかのライブラリを使用してみてください。.. – shadygoneinsane

答えて

1

これは私が私のアプリでそれを行う方法です。

  • ストアデバイス
  • の最後に成功した同期の日付はすべてのオブジェクトは、lastUpdated
  • 削除されたオブジェクトは、実際に削除されませんしました。彼らはisDeletedフラグ
  • 同期を持ってlastUpdated> =あなたの最後の同期日
関連する問題