ContentObserver收听接触的变化(ContentObserver for listeni

2019-08-16 18:21发布

我真的不明白,为什么内容观察者监听其不与联系人信息相关的变化。

我简单地注册到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项目的变化?

Answer 1:

联系人数据库中有一个字段ContactsContract.Contacts.TIMES_CONTACTED每次你联系的人在您的联系人列表时,此字段更新。

它甚至可以使用自己的应用程序,这意味着,如果你使用的是更新这一领域的应用联系任何接触到更新此字段,您onChange()方法被调用。



文章来源: ContentObserver for listening contact changes