2013-02-05 88 views
8

我真的不明白爲什麼內容觀察員偵聽與聯繫人信息無關的更改。ContentObserver用於偵聽聯繫人更改

我只是註冊到URI我想聽的變化:

getContentResolver().registerContentObserver(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contactsObserver); 

但稱某人或發短信給別人後,它會觸發和ContentObserver調用的onChange方法。所以我需要將所有聯繫人列表與我的應用程序重新同步,儘管我不需要這樣做。

只有場我感興趣的是:

  • ContactsContract.CommonDataKinds.Phone.CONTACT_ID
  • ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
  • ContactsContract.CommonDataKinds.Phone.NUMBER

我應該實施什麼樣的更改來監聽此DB項目的更改?

+0

得到了任何解決方案,如果是的話,請指導我..我有同樣的問題,因爲最後1周 – user3475052

+0

@ user3475052最近的答案可能會讓你感興趣。 – Boris

+0

仍然面臨着這個問題。 – GensaGames

回答

0

聯繫人數據庫有一個字段ContactsContract.Contacts.TIMES_CONTACTED 每次聯繫您的聯繫人列表中的某個人時,該字段都會更新。

甚至可以使用您自己的應用更新此字段,這意味着如果您使用更新此字段的應用聯繫任何聯繫人,您的onChange()方法將被調用。

+0

還有像這樣的字段,比如'ContactsContract.ContactOptionsColumns.LAST_TIME_CONTACTED'。 –

+0

這是一個很老的問題,不確定OP是否還在等待,但是@ user3475052可能會有興趣? – Boris

相關問題