Tôi đang triển khai AutoCompleteTextView và tôi cần Tên và E-Mail của tất cả các liên hệ của mình. Tôi tìm thấy đoạn mã này mà tôi đang chạy không đồng bộ nhưng nó rất chậm.Nhận tên và email từ danh sách liên lạc rất chậm
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
while (emailCur.moveToNext()) {
String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
autoCompleteAdapter.add(name + " - " + email);
}
emailCur.close();
}
}
}
Tôi đang thực hiện một loại truy vấn bên trong và tôi nghĩ đó là vấn đề. Có cách nào để điều chỉnh và làm cho nó nhanh hơn không?
Bạn có quản lý để làm cho nó hoạt động không? –
Bên ngoài 'if (cur.getCount()> 0)' là thừa và có thể bị xóa. – mdup