2016-01-21 44 views
3

我使用下面的方法啓動手動同步重試機制

public void startSync(){ 
     Bundle syncBundle = new Bundle(); 
     syncBundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true); 
     syncBundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 
     syncBundle.putInt(Utils.SYNC_TYPE, USER_DATA); 

     ContentResolver.requestSync(acts[0], CONTENT_AUTHORITY, syncBundle); 

    } 

讓說同步失敗,因爲某些原因:

1.網絡故障 - 如何開始再次同步時網絡回來

2.服務器響應不良 - 最佳重試方式

3.設備關機 - 重新啓動時同步啓動設備

是否有機器人負責處理此的同步框架的任何機制最好的辦法**

回答

2

#1和#2。你會報告「軟錯誤」,然後它會自動(有指數回退)重試:

syncResult.stats.numIoExceptions++; 

對於#4你可以爲android.intent.action.BOOT_COMPLETED創建的廣播接收器,然後從那裏觸發手動同步。