2013-07-25 117 views
0

我有同樣的問題在這裏說:Android SyncAdapter stuck in infinite sync loop無限循環同步syncadapter

但試圖實現onPerformSync的有NotifyChange(URI URI,ContentObserver觀察者,布爾syncToNetwork)後,我意識到,我不知道如何獲取我需要的ContentObserver(它在主要活動中定義並傳入)

任何提示?

編輯1:

這樣的人First time sync loops indefinitely

我發現ContentResolver.cancelSync(帳戶,權力);也可以工作,但如果有人有更好的解決方案...請讓我知道!

編輯2:

我跟着這個職位Android SyncAdapter Automatically Initialize Syncing

建議使用調試器逐句通過後,我證實,當它傳遞到有NotifyChange SyncToNetwork是最肯定是假的,但無限的同步繼續沒有cancelSync ...仍然沒有永久性的解決方案

回答

2

前一段時間我問了這個問題,當時我只是把腳趾浸入Android編程,我想我會分享我發現任何好奇的人。當我按照教程實現自定義ContentProvider時,我看到在update()insert()delete()方法之後使用notifyChange (Uri uri, ContentObserver observer)。不知道什麼,我也在我的ContentProvider中調用notifyChange。這導致像無限同步循環,我只是無法弄清楚的問題。有一個重載的方法:notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork)我當時知道,但我永遠不知道如何使用它,因爲我的notifyChange被我的ContentProvider調用。這實際上是一個簡單的修復。我所要做的只是撥打notifyChange (uri, null, false)而不是在我的ContentProvider中,而是通過ContentResolver getContentResolver().insert()等方式調用這些方法之後。

我希望這可以幫助某人。