2017-06-02 69 views
0

我已經實際開始使用以下代碼同步Google日曆平臺。但是,我們如何知道是同步完成或失敗我們如何知道日曆同步已完成?

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

我認爲你應該使用SyncStatusObserver獲取有關同步狀態更改的通知。

以下方法註冊你的觀察:

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

從未執行else部分。 –

+0

你的想法是對的,但我必須改變一些事情.. –

相關問題