0

私はAndroidを初めて使用し、ユーザーがデータをオフラインで編集し、オンラインのときにサーバー上のマスターデータベースに同期できるアプリケーションを作成しようとしています。

ユーザーがオフラインで作業できるようにするには、コンテンツプロバイダー/データベースアダプタークラスを介して更新できるAndroidデバイス上のデータベースが必要になると想定しています。

私の質問は、ローカルデータベースを認証してサーバーデータベースと同期するための高レベルのオプションは何ですか?一般的/推奨されるアプローチはありますか?サーバーでRESTfulAPIを使用することを聞いたことがあります(ただし、それらについてはよくわかりません)。これは標準的なアプローチですか。

また、同期が実行される頻度に共通のアプローチがありますか?たとえば定期的にですか?オンライン時に変更するとすぐに?

これは私にとって非常に灰色の領域であるため、どんな助けでも大歓迎です。

4

1 に答える 1

1

これらすべての質問に答えるのは少し難しいです。なぜなら、それは実際にはアプリケーションとそれをどのように機能させたいかによって異なるからです。しかし、私は間違いなくRESTfulWebサービスを調べます。これに関する優れたチュートリアルはWeb上に多数ありますが、基本的には、URLのパラメーター、場合によってはPOSTの本文のデータを取得できるWebサーバーをセットアップする必要があります。あなたの場合、それはおそらくデータを含むPOSTであるため、更新をDBに送信できます。

ただし、他にもいくつかの問題があります。もちろん、同期は両方の方法で実行する必要があります。サーバーとモバイルクライアントの両方でデータが変更された場合はどうなりますか?そこでどのように紛争解決を行いますか?

第二に、同期する頻度の問題に関しては、それは本当にあなた次第であり、データはどれほどタイムクリティカルであるかです。もちろん、同期の間隔が長くなるほど、オンラインデータは古くなり、両方の場所で変更される可能性が高くなります。定期的に同期することはおそらく良いスタートであり、接続が戻ったときに同期を追加します。たとえば、電話が機内モードの場合のように、接続できずにいくつかの同期期間が過ぎていることがわかります。ただし、定期的に同期する場合は、データ使用量とバッテリーに十分注意する必要があるため、妥当な期間を選択してください。おそらく1時間に1回ですか。そして、変更が加えられた場合にのみ同期します。

申し訳ありませんが、データの実際の使用例を知らなくても、より詳細な情報を提供できるとは思いません。

于 2012-10-01T14:22:02.823 に答える