У меня большая проблема с производительностью в моем приложении.Пройдя трассировку, я обнаружил, что большая часть производительности моего приложения потребляется курсорами.Поэтому мне было интересно, есть ли альтернатива курсорам для работы со списком контактов устройства.А если альтернативы нет, то, пожалуйста, посоветуйте мне, как работать с курсорами, чтобы это не замедляло ваше приложение.
Пожалуйста, ПОМОГИТЕ !!
Спасибо.
Эточасть моего кода имеет проблемы с производительностью: -
public void getDisplayName()
{
Cursor c1 = this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
String personName = null, number = null;
try
{
Log.e(TAG, "I am here!!");
if(c1.getCount() > 0)
{
Log.e(TAG, "I am here2!!");
while(c1.moveToNext())
{
HashMap<String,String> item = new HashMap<String,String>();
String id = c1.getString(c1.getColumnIndex(Contacts._ID));
personName = c1.getString(c1.getColumnIndex(Contacts.DISPLAY_NAME));
item.put("Name", personName);
Cursor cur = this.getContentResolver().query(CommonDataKinds.Phone.CONTENT_URI, null, CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null);
while(cur.moveToNext())
{
Log.e(TAG, "I am here!!3");
number = cur.getString(cur.getColumnIndex(CommonDataKinds.Phone.NUMBER));
item.put("Number", number);
}
displayName.add(item);
}
}
}
finally
{
c1.close();
}
}