Android ContentObserver用于监听联系人更改

Android ContentObserver用于监听联系人更改,android,android-contacts,contentobserver,android-query,Android,Android Contacts,Contentobserver,Android Query,我真的不明白为什么content observer会监听与联系人信息无关的更改 我只是注册了URI,我想监听更改: getContentResolver().registerContentObserver(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contactsObserver); 但在调用某人或向某人发送短信后,它会触发并调用ContentObserver中的onChange方法。因此,我需要将所有联系人列表与我的应

我真的不明白为什么content observer会监听与联系人信息无关的更改

我只是注册了URI,我想监听更改:

getContentResolver().registerContentObserver(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contactsObserver);
但在调用某人或向某人发送短信后,它会触发并调用ContentObserver中的onChange方法。因此,我需要将所有联系人列表与我的应用程序重新同步,尽管我不需要这样做

我唯一感兴趣的领域是:

  • Contacts contract.CommonDataTypes.Phone.CONTACT\u ID
  • Contacts contract.CommonDataTypes.Phone.DISPLAY\u NAME
  • Contacts contract.CommonDataTypes.Phone.NUMBER

我应该实施什么样的更改来侦听此数据库项的更改?

联系人数据库有一个字段
Contacts contract.Contacts.TIMES\u CONTACTED
每次联系联系人列表中的人时,此字段都会更新


甚至可以使用您自己的应用程序更新此字段,这意味着,如果您使用更新此字段的应用程序联系任何联系人,将调用您的
onChange()
方法。

找到了解决方案,如果是,请指导我。我从去年1月起就有同样的问题week@user3475052您可能会对最近的回答感兴趣。仍然面临此问题。还有更多类似于此的字段,
contacts contract.contactoptions columns。例如,上次联系时,
。这是一个非常老的问题,不确定OP是否仍在等待,但也许@user3475052会感兴趣?