안드로이드에서 연락처를 더 빨리 읽을 수있는 방법이 있습니까? 예를 들어 커서가있는 내 메서드는 30-50 개의 연락처를 읽는 데 3-5 초가 걸립니다. 그것은 매우 길다.빠른 읽기 연락처 android
Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext())
{
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false" ;
if (Boolean.parseBoolean(hasPhone))
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
while (phones.moveToNext())
{
names.add(cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)));
numbers.add(phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
}
phones.close();
}
}
아이디어가 있으십니까?
을 사용 튜토리얼을 완료 90 %의 타이밍을 줄이는 데 도움이 될 것입니다. 또한 [CursorLoader] (http://developer.android.com/reference/android/content/CursorLoader.html)는 UI 스레드에서 작업을 수행하므로 (아직 수행하지 않은 경우) 사용해야합니다. – hwrdprkns
예, 할 수 있습니다 ... :) – Kri