Android SDK デモ (同期アダプターを使用したデータの転送) で SampleSyncAdapter プロジェクトを確認する必要があります。常に同期ボタンを手動でタップすることにより、ユーザーの操作を必要としない「Android スタイル」の同期を行う方法を示します。
その上、最後のコミット以降のすべての変更の「デルタ」を SyncAdapter に提供できるサーバー ソフトウェアを作成する必要があります。最も基本的なアプローチは、サーバーから取得する必要がある「最後に同期された」タイムスタンプをアプリに保持することです。そうしないと、クライアントとサーバー間の時間差のために問題が発生する可能性があります。すべてのタイム スタンプを GMT または選択した任意のタイムゾーンとして正規化しますが、その決定に固執してください。アプリでタイム スタンプを現地時間で表示する必要がある場合は、正規化されたタイム スタンプを現地時間に変換するために Java Calendar および TimeZone クラスを使用する必要があります。
アプリは、変更されたローカル レコードに "ダーティ" としてフラグを立てる必要もあります。これにより、SyncAdapter は、これらの変更されたレコードまたは新しいレコードをサーバーにアップロードする必要があることを認識します。
サーバー ソフトウェアには、次の最小限の機能が必要です。
- 既存のレコードを更新する機能
- 新規レコード追加機能
- 最後の同期以降に更新されたレコードを取得します (アプリはタイムスタンプを提供します)
- 最後の同期以降の新しいレコードを取得します (アプリはタイムスタンプを提供します)
また、これらすべてがどのように機能するか、および通信用のサーバー API インターフェイスを設計する方法を理解するために、いくつかの Google API (Google カレンダーなど) を読みたいと思うかもしれません。