【问题标题】:Possibility of a custom Contacts field with a set list of values and Contacts lookup performance具有一组值列表和联系人查找性能的自定义联系人字段的可能性
【发布时间】:2010-05-28 21:16:02
【问题描述】:
我很确定根据一些初步研究来做我想做的事情是不可行的,但我认为如果有人知道方法,请在这里询问专家社区并没有什么坏处。
我想为联系人创建一个自定义字段,用户可以从主联系人应用程序编辑该字段;但是,应该只允许用户从四个特定值的列表中进行选择。一个简短的字符串值列表是理想的,但具有最小/最大范围的 int 就足够了。
我很想知道这两种方法是否可行,但也想知道在性能方面走这条路线是否有意义。更具体地说,每次收到电话或短信时查找联系人(基于电话号码)会更好,还是更好地存储我自己的数据集(由姓名、数字和自定义字段组成)和只是经常在一个线程中同步联系人信息?还是在应用首次运行时同步联系人,然后使用ContentObserver 注册更改?
这是answer that explains how to add a custom field to a contact 的类似问题。
提前致谢。
【问题讨论】:
标签:
android
performance
contacts
【解决方案1】:
我看不出将您自己的一组联系人数据存储在您的单独数据库中的目的,因为您显然会遇到同步问题。您可以使用 mimetype 并以您链接的方式针对联系人存储任何您想要的内容。
当您想要查找联系人时,您可以使用您的自定义 mimetype 来实现。您获取联系人 ID(来自 ContactsContract.Data.CONTENT_URI),然后运行另一个查询以获取联系人详细信息(来自 ContactsContract.Contacts.CONTENT_URI)。请注意,这些是不同的表格。
我想为联系人创建一个自定义字段,用户可以从联系人主应用程序
编辑该字段
当您使用自定义 mimetypes 时,我认为这是不可能的,可从主应用程序编辑,而且您在这里没有太多选择。主要联系人应用程序将仅显示 SDK 中的字段。您可以存储联系人的详细信息,但它们不会显示在内置的编辑联系人屏幕中。