मैं एक ऑटोकंपलेटटेक्स्टव्यू लागू कर रहा हूं और मुझे अपने सभी संपर्कों का नाम और ई-मेल चाहिए। मुझे यह स्निपेट मिला कि मैं असीमित रूप से चल रहा हूं लेकिन यह बहुत धीमा है।संपर्क सूची से नाम और ईमेल प्राप्त करना बहुत धीमा है
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();
}
}
}
मैं एक प्रकार की आंतरिक क्वेरी कर रहा हूं और मुझे लगता है कि यह समस्या है। क्या इसे ट्यून करने और इसे तेज बनाने का कोई तरीका है?
क्या आप इसे काम करने में कामयाब रहे? –
बाहरी 'if (cur.getCount()> 0) 'अनावश्यक है और हटाया जा सकता है। – mdup