更新數據庫中的記錄後,會觸發SyncAdapter
以將更改上傳到服務器。 但是,如果上傳失敗,我該如何告知SyncManager
重複同步? 我試過設置syncResult.fullSyncRequested = true
但沒有任何反應。 從SyncAdapter
內部我需要ContentResolver.requestSync()
嗎?Android - 如何在失敗時重新安排同步請求
3
A
回答
2
既然你說你的同步失敗了,我猜你可能在你的SyncResult.stats
中設置了一些錯誤指示字段。嘗試清除它們。
我有完全相同的問題,此代碼
syncResult.stats.numAuthExceptions++;
syncResult.fullSyncRequested = true;
AccountManager.get(getContext()).invalidateAuthToken(account.type, token);
return;
和去除numAuthExceptions++
使它立即重新安排,如預期。
文檔說約fullSyncRequested
:
如果設置SyncManager將請求立即同步與作爲同步請求使用相同的賬戶和權限(但空額外包)。
但是,看看SyncManager
source我認爲它實際上符合指數退避和指定的最小延遲。不知道這是否是一個錯誤,或者我只是誤解了(有點稀疏)關於同步的文檔。
0
我發現的是fullSyncRequested不會立即安排重新同步,但會遵守退避算法。另外如果SyncResult#hasSoftError需要返回true看起來。
相關問題
- 1. 捕獲失敗的同步HTTP請求
- 2. 如何使用ASIHTTP重新發送/重新排隊失敗的請求?
- 3. Android Studio新安裝時Gradle項目同步失敗0.4.6
- 4. 請求HTTP失敗在android
- 5. 重新排列幾個異步請求
- 6. 在Android上重新安裝失敗
- 7. DataTables(serverSide)在第一次請求時OK,在搜索或重新排序時請求中的「[Object object]」失敗
- 8. RestKit:如何重試失敗的請求?
- 9. Android請求位置更新失敗
- 10. Sidekiq - 重新安排失敗的作業
- 11. 重試失敗jQuery.ajax請求
- 12. Android ksoap2 http請求失敗
- 13. 網絡請求失敗Android
- 14. RestKit:如何在重新驗證後重新提交失敗的請求?
- 15. PHP如何失敗請求
- 16. Android Studio Gradle同步失敗
- 17. Android studio Gradle同步失敗
- 18. 在異步Web請求中設置請求屬性失敗。 C#
- 19. Android/RxJava如何鏈接網絡請求,並在失敗時重試
- 20. Android:應用重新安裝失敗
- 21. 如何全局重新發送失敗的Ajax請求?
- 22. 如何重新安排失敗的Rufus每項工作?
- 23. 請求失敗(401)
- 24. 放心 - 重試請求如果失敗
- 25. 使用ASIFormDataRequest失敗異步請求
- 26. 如何同步請求?
- 27. Gradle同步失敗
- 28. 安卓:LinkedIn請求令牌失敗
- 29. 重新安排計時器在Android的
- 30. 在android中重新安排定時器