android中的RawContacts.CONTENT_URI与ContactsContract.Contacts.CONTENT_URI的区别

时间:2014-02-28 00:10:19

标签: android api contacts contactscontract rawcontacts

Android中的RawContacts.CONTENT_URI和ContactsContract.Contacts.CONTENT_URI有什么区别?

我正在尝试编写一个侦听本地地址簿更改的服务。那么,使用哪一个?

感谢 NIZ

1 个答案:

答案 0 :(得分:4)

联系人(用户认为)是RawContact的集合

RawContact是与某个帐户或协议相关的一些细节

ContactsContract.Contacts.CONTENT_URI通常是正确使用的,因为它会从整个匹配的RawContacts中恢复正确的显示名称,并可以帮助您加入所有链接的帐户

如果您想匹配与帐户/协议相关的特定[联系人]联系人,可以使用RawContacts.CONTENT_URI

然后有各种数据类型/目录可以带回更广泛的数据范围。

您应该使用哪一个问题归结为您正在观看的数据以及您是否/如何显示它,以及您要观看的行数。我会说经常使用ContactsContract。

这也取决于您希望“通知”的细化程度。即内容观察者回调可以为您提供一个URL来显示已更改的内容,但仅此而已,这意味着如果您只想对您知道已更改的特定行进行操作,那么您将拥有观察不同的事情,而不是只是想知道发生了一些更改,并且是时候通知notifyDataSetChanged了!