2017-06-02 40 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

你的想法是对的,但我必须改变一些事情.. –

相关问题