2017-06-02 3 views
0

私は、次のコードを使用してGoogleカレンダーのevensを同期させています。しかし、どのように我々は、同期が完了している知っているか、私はあなたが同期ステータスの変更についての通知を取得するためにSyncStatusObserverを使うべきだと思うカレンダー同期が完了したことはどのようにわかりますか?

private void requestCalendarSync() 
{ 
    AccountManager aM = AccountManager.get(this); 
    Account[] accounts = aM.getAccounts(); 

    for (Account account : accounts) 
    { 
     int isSyncable = ContentResolver.getIsSyncable(account, CalendarContract.AUTHORITY); 

     if (isSyncable > 0) 
     { 
      Bundle extras = new Bundle(); 
      extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 
      ContentResolver.requestSync(accounts[0], CalendarContract.AUTHORITY, extras); 
     } 
    } 
} 

答えて

1

に失敗しました。

次のメソッドを使用してオブザーバを登録します。

ContentResolver.addStatusChangeListener(ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE, new MySyncStatusObserver()); 

onStatusChanged方法実装します

private class MySyncStatusObserver implements SyncStatusObserver { 
    @Override 
    public void onStatusChanged(int which) { 
     if (ContentResolver.isSyncActive(mAccount, CalendarContract.AUTHORITY)) { 
      // There is now an active sync. 
     } else { 
      // There is no longer an active sync. 
     } 
    } 
}; 
+0

が他の部分を実行することはありませんが。 –

+0

あなたの考えは正しいですが、私は何かを変えなければなりません.. –

関連する問題