2

Android デバイスの連絡先をサーバーと同期したい (一方向同期: デバイスの連絡先 DB に従ってサーバーを更新する)。

SampleSyncAdapter の例を見てきました: http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

パズルのピースを理解するための非常に優れたブログ: http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/

同期ロジック自体は、AbstractThreadedSyncAdapter を拡張するクラスで onPerformSync() をオーバーライドすることになっていることを理解しています。

ただし、同期アルゴリズムの例は見つかりませんでした。たとえば、以前の同期からの差分だけを同期するにはどうすればよいですか? 最新の同期された連絡先のキャッシュを保持し、現在の連絡先 DB と比較する必要がありますか?

4

1 に答える 1

0

理想的には、その作業の多くをサーバーにオフロードします。

REST API タイプのサーバーについて話している場合は、2 つのオプションがあります。

  1. まず、データセット内の行のインデックスをフェッチし、要求の一部としてパラメータを渡して、日付以降に変更された行を除外し、それらの特定の行のみをフェッチします。

それが REST API でサポートされていない場合は、

  1. 独自の URL で各行をフェッチし、HTML ヘッダー フィールドを使用して、変更されたものだけを識別します。たとえば、「If-Modified-Since」フィールドを参照してください。これにより、取得したページが変更されていない場合、わざわざそれを返すのではなく、304 (変更されていない) 応答を送信するようサーバーに通知します。304 の場合は、DB を変更する必要がないことがわかります。
于 2011-10-19T13:53:46.500 に答える