2016-05-31 87 views
0

我最近了解到,當使用帶有CursorLoaders的ContentProvider時,不需要創建自己的ContentObserver,只需調用cursor#setNotificationUri()或getContext()。getResolver()。notifyChange。現在我想使用SyncAdapter對數據更改進行同步,並且對此的要求是針對各個URI使用ContentObserver,我的問題是,這對上述監聽數據更改的方式會產生什麼影響?沒有ContentObserver的SyncAdapter

回答

1

使用SyncAdapter時,不需要ContentObserver來觸發同步。只要確保在致電notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork)時將syncToNetwork設置爲true。

Android會自動調用此權限的所有同步適配器,它們的supportsUploading設置爲true並且配置爲自動同步。

+0

但cursor.setNotificationUri方法沒有syncToNetwork參數,我在這種情況下做什麼? – lll

+0

這是無關緊要的。這只是爲了通知遊標有關更改,因此UI可以立即更新自己。只要有可能需要同步的內容發生變化(因此只需在插入,更新和刪除操作時進行設置),ContentProvider應將syncToNetwork設置爲「true」。請注意,當SyncAdapter更改某些內容時,不應將其設置爲true(因爲這可能會導致循環)。 – Marten

+0

我明白了,謝謝.. – lll