1

我以前使用ContentObserver來獲取有關設備聯繫人列表中更改的通知。 問題是我需要在後臺工作(當應用程序關閉時),所以我使用了一個服務,但它仍然沒有工作(除非我聲明服務在前臺工作 - 我們不'不希望發生這種情況)。SyncAdapter用於檢測設備的本機聯繫人列表中的更改

所以我看到了另一種使用SyncAdapter的解決方案。 我有我自己的存儲解決方案,我沒有在我的應用程序中使用ContentProvider。 我也有我自己的實施,以檢測哪些聯繫人已被添加/刪除/更改。

我唯一需要的是檢測何時發生並得到通知。

我需要一個存根內容提供者來實現嗎? 將com.android.contacts聲明爲同步適配器的權限足夠了嗎?

我需要一些幫助,配置這些...

在此先感謝! Rotem。

回答

0

O.k.所以我終於搞清楚了。

爲了實現這個目標,(僅獲得有關設備聯繫人更改的通知),您不需要存根內容提供者。 只需聲明具有同步適配器服務的同步適配器即可。 在syncadapter的XML聲明,使用ContactsContract.AUTHORITY 這意味着:機器人:contentAuthority = 「com.android.contacts」

和設置自動同步: ContentResolver.setSyncAutomatically(帳戶,ContactsContract.AUTHORITY,真) ;

請記住,您的SyncAdapter實現中的onPerformSync方法不會立即調用,系統會「等待」以獲得這些同步的最佳時間,從我的經驗中以任何方式花費大約40秒。

+0

這是錯誤的。 'setSyncAutomatically'涉及'網絡癢感',而不是聯繫人的變化。 –

相關問題