私は現在、モバイルの連絡先をサーバーに同期する Android プロジェクトに取り組んでいSyncAdapter
ますaccountmanager
。しかし、私が理解できないことが2つあります。これらについてGoogleで検索しましたが、完全な答えが得られませんでした。質問を複製しないでください。それがどのように機能するかをより明確に知りたいです。
- Google のドキュメントに記載されているように、同期が完了するたびに、連絡先のダーティ フラグが変更されます。私の疑問は、どの連絡先がサーバーに送られるかをプログラムで指定しているため、Android OSがその特定の連絡先の同期のステータスをどのように検出するかです。
例:- 以下の例では、バンドルをサーバーに送信したいと考えています。
Bundle extras = new Bundle();
extras.putInt("contact name after filtering", "number after filtering");
ContentResolver.requestSync(account,ContactsContract.AUTHORITY, extras);
onPerformSync
次に、メソッドで受信したバンドル エクストラをサーバーに送信します。
@Override
public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) {
for (String key : extras.keySet())
{
Log.d("Bundle Debug", key + " = \"" + extras.get(key) + "\"");
}
//Code to send to server
}
上記の例で、変数 extras は、連絡先リストの変更をフィルタリングした後に取得したバンドルであり、それらをサーバーに更新したいとします。SyncAdapter フレームワークまたは OS はどのように変更を検出し、その連絡先のダーティ フラグを更新しますか? もちろん、私は提供AUTHORITY
しましたが、何が変更されたかを見つけるのにどのように役立つかわかりません。上記の方法は正しい実装方法ですか?
- 同期が失敗したかどうかを確認する方法 または終了しましたか?