猿问

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

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;
                        }

                    }


绝地无双
浏览 1834回答 3
3回答

FFIVE

您检索查询中的所有列:Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,                     null, null, null, null);这使得数据处理更慢。如果您定义了一个真正需要检索的列数组,那么速度会快得多。
随时随地看视频慕课网APP

相关分类

Android
我要回答