2017-09-15 4 views
-1

誰かが、オフラインだけでなくAndroidアプリケーションをオンラインでやってみることをお勧めしますか?また、サーバー側のデータをローカルデータベースと同期させる方法を教えてください。完全なオフラインアプリケーションのために取るべきアンドロイドアプリケーションをサーバー側でオンラインとオフラインの両方で動作させるにはどうすればいいですか?どのようにサーバー側のデータを同期するには?

+3

これは興味深い質問です。これは、クライアントアプリケーションとバックエンドの開発者がそれぞれ解決しなければならない問題であり、APIとアプリケーション設計で把握する必要があるためです。この質問は広すぎます*あなたのデータベースがクライアント側とサーバー側のどちらにあるのか、どのテクノロジを使用するのか、プロジェクトの制限などなどによって異なります。 – EpicPandaForce

+0

私は、これを行う"。 –

+0

最初の質問に対する回答は、オンラインでもオフラインでも、ユーザーがオンラインになるたびにローカルデータベースを同期させることによって、2番目の質問に書かれています。 2番目の質問に対する答えはサービスとAsyncTaskの組み合わせです –

答えて

5

ステップ:

1)あなたのUIは、常に、DBからのデータを表示し、積極的に任意のDBの変更を待機します。

2)ユーザーがアプリケーションとやりとりするたびに、dbを直接更新し、データベース内の関連フィールドにサーバーと同期するようにマークします。 (あなたのUIは、DBの変更を聞いているとすぐに更新されます)

3)あなたのネットワーク層は、データベース内のマークされたフィールドの変更をリッスンし、サーバーとの同期を試みます。

4)サーバー側の変更が成功すると、正常に同期されたdbフィールドのマークを解除します。

5)ダウンシンクを実装している場合(つまり、サーバーに更新されたデータがあり、それに応じてクライアントを更新したい場合)、デバイスにプッシュ通知を送信し、ネットワーク呼び出しを行って最新のデータを取得できます通知メッセージに応じて

これが円滑に機能するためには、反応的なデータベースが必要です。 レルムデータベースは、私が使用した例です。

+0

小さなデータを扱っているのなら、これは簡単です。データが大きい場合はどうなりますか?私は各データを更新されたデータと同期させる必要があります。 – The90sArtist

+0

私はそれに答えるためにもっと文脈が必要です。あなたがニュースアプリを作っているとしたら、朝に1日に1回(例えば)午前にサーバーからすべてのデータを取り出し、db –

関連する問題