为了账号安全,请及时绑定邮箱和手机立即绑定

Android获取所有联系人列表(姓名,电子邮件,电话)需要超过一分钟的约700个联系人

Android获取所有联系人列表(姓名,电子邮件,电话)需要超过一分钟的约700个联系人

绝地无双 2019-08-09 09:55:52
Android获取所有联系人列表(姓名,电子邮件,电话)需要超过一分钟的约700个联系人有没有办法缩短这个时间?我正在使用光标运行并获取姓名,电话号码和电子邮件如果我从查询循环中删除电话号码查询,它将在3秒后结束任何想法如何改进该查询?也许我在查询中做错了什么?(显然我正在做异步但仍然......用户已经很长时间不能等了)希望有人可以分享他对此的看法这是我的代码ContentResolver cr = getContentResolver();             Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,                     null, null, null, null);             if (cur.getCount() > 0) {                 while (cur.moveToNext()) {                     AddressBookEntity adr = new AddressBookEntity();                     String id = cur.getString(cur                            .getColumnIndex(ContactsContract.Contacts._ID));                     String name = cur                            .getString(cur                                    .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));                     adr.fullName = name;                     Cursor emailCur = cr                            .query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,                                     null,                                     ContactsContract.CommonDataKinds.Email.CONTACT_ID                                            + " = ?", new String[] { id },                                     null);                     while (emailCur.moveToNext()) {                         // This would allow you get several email addresses                         // if the email addresses were stored in an array                         String email = emailCur                                .getString(emailCur                                        .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));                         if (!Utils.IsNullOrEmptyString(email)) {                             adr.email = email;                         }                     }
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您检索查询中的所有列:

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                    null, null, null, null);

这使得数据处理更慢。如果您定义了一个真正需要检索的列数组,那么速度会快得多。


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 1832 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信