Android:快速查找联系人列表
我目前正在开发一个应用程序,需要通过电话号码查找一些联系人(姓名和照片)。 但是,这需要几秒钟(对于每个联系人:通过电话号码查找联系人,获取联系人的姓名和照片)。
加速这一过程的好策略是什么?我意识到我可以使用自己的 sqlite 数据库,其中包含我需要的姓名和照片的列表。使用这样的数据库,我只能执行一次查询,然后立即获取我需要的所有联系人的数据。然而,这会增加相当多的开销,我希望避免。
有更好的(说:更简单的)解决方案吗?
谢谢。
I am currently developing an App which needs to look up a number of contacts (name and photo) via their phone number.
However, this takes several seconds (For each contact: Look up the contact via their phone number, get contact's name & photo).
What would be a good strategy to speed this process up? I realize that I could use my own sqlite db which contains a list of exactly those names and photos I need. With such a database I could only do one query, then get the data for all contacts I need at once. This however would add quite some overhead I am hoping to avoid.
Is there a better (speak: simpler) solution?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 CursorAdapter 并覆盖 bindView() 方法,例如:
您可以使用 ContactsContract.CommonDataKinds.Phone.CONTENT_URI 而不是 ContactsContract.CommonDataKinds.Email.CONTENT_URI 。
you can use CursorAdapter and override bindView() method for example:
you would use ContactsContract.CommonDataKinds.Phone.CONTENT_URI instead of ContactsContract.CommonDataKinds.Email.CONTENT_URI .
您可以使用 Hashmap 来缓存数据,运行后台线程将联系人数据缓存在 HashMap 中,并在需要时从 hashmap 中获取数据。当需要信息时,它将减少查询时间。
You can use Hashmap to cache the data, run a background thread to cache the contacts data in HashMap and fetch it from hashmap when ever necessary. It will reduce query time when information is needed.
另一个例子:
another example: