2013-04-24 103 views
13

我想在我的應用程序中使用同步適配器來同步本機和第三方聯繫人(FB除外)與服務器。 (只有客戶端到服務器單向同步)聯繫人同步適配器在android

我這裏有兩個疑惑 -

1)如果在該設備中的多個同步適配器和如果髒位已被另一同步適配器清除,將我的同步適配器能夠立即檢測到聯繫人更改/更新。

2)我已經使用

ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1); 
ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);  

同步與服務器的聯繫方式。

它每30秒啓動一次同步。

但我希望它在添加聯繫人時立即得到通知或者刪除或更新以啓動perfromSync操作。

我是否也需要使用觀察者?

回答

3

爲了查看聯繫人的更改,您必須向ContentResolver註冊一個觀察者。同步API不是爲了監視每一個變化,它的目的是爲Android自動定期運行一個後臺API,以便它可以批量操作和更高效地使用網絡,不會在網絡被禁用時運行等。 ..

髒位用於每個帳戶的基礎上。一般而言,同步設計爲每個聯繫人擁有「擁有」帳戶,並且不用於將設備中的所有聯繫人導出到特定服務。有一個聚合過程,用於處理從多個帳戶加入聯繫人到用戶看到的一個「聯繫人」。請參閱:

http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html

有關如何工作的更多信息。

如果您打算將設備上的所有聯繫人導出到您的服務中,則需要走過聯繫人併爲您的服務插入原始聯繫人。然後,您還需要觀察ContentResolver以查看用戶何時在某個服務上添加新聯繫人,或者定期走查找您還沒有導出的聯繫人的表。

2

使用版本位。如果有任何接觸編輯 ,所以你創建本地數據庫以前版本比較當前版本自動加1

。如果發生任何更改,則觸發更新查詢。

欲瞭解更多信息,請訪問here

此版本有助於我的同步更新。所以我分享這個答案。

相關問題