android中的 RawContacts.CONTENT_URI 和 ContactsContract.Contacts.CONTENT_URI 有什么区别?
我正在尝试编写一个侦听本机通讯录更改的服务。那么,该使用哪一个呢?
谢谢尼兹
android中的 RawContacts.CONTENT_URI 和 ContactsContract.Contacts.CONTENT_URI 有什么区别?
我正在尝试编写一个侦听本机通讯录更改的服务。那么,该使用哪一个呢?
谢谢尼兹
联系人(如用户所理解的那样)是 RawContact 的集合
RawContact 是与某个帐户或协议相关联的一些详细信息
ContactsContract.Contacts.CONTENT_URI 通常是正确的使用,因为它从整组匹配的 RawContacts 中带回正确的显示名称,并且可以帮助您加入所有链接的帐户
如果您想匹配与帐户/协议相关的特定 [set of] 联系人,则可以使用 RawContacts.CONTENT_URI
然后有各种数据类型/目录可以带回更广泛的数据。
您应该使用哪一个的问题归结为您正在观看的数据以及您是否/如何显示它,以及您尝试观看的行数。我经常说使用 ContactsContract 是正确的。
它还取决于您希望“通知”的粒度。即内容观察者回调可以给你一个 URL 来告诉你发生了什么变化,但仅此而已,这意味着如果你只想对你知道已经改变的特定行采取行动,那么你将不得不观察不同的事情,而不是 if您只想知道发生了一些变化,是时候通知DataSetChanged了!