Страница 1 из 1

Загрузка SMS в ListView

Добавлено: 14 апр 2014, 16:31
EspanaMia
Требуется загрузить в ListView SMS сообщения и преобразовать номера SMS в имена контактов, использую следующий код:

// Загружаю номер и текст сообщения
Uri uri = Uri.parse("content://sms");
CursorLoader cursorLoader = new CursorLoader(getApplicationContext(), uri, null, null, null, "date DESC");
Cursor cursor2 = cursorLoader.loadInBackground();
while (cursor2.moveToNext()) {
number_bd = cursor2.getString(2);
message = cursor2.getString(cursor2.getColumnIndex("body"));

// по номеру телефона получаем имя контакта
Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number_bd));
String[] projection = new String[]{Contacts._ID, Contacts.DISPLAY_NAME};
String selection = ContactsContract.CommonDataKinds.Phone.NUMBER + " = " + number_bd;
Cursor cursorContactId = getContentResolver().query(contactUri, projection, selection, null, null);
if (cursorContactId.moveToNext())
{
displayName = cursorContactId.getString(cursorContactId.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursorContactId.close();
}

Для ListView использую адаптер BaseAdapter и ViewHolder.

Проблема в том, что данные загружаются очень долго, каким образом это сделано например в стандартном SMS мессенджере, где загрузка всех SMS занимает не более 1 сек. ?

Re: Загрузка SMS в ListView

Добавлено: 14 апр 2014, 17:07
Foenix
вопрос интересный, но неотформатированный код.....

Re: Загрузка SMS в ListView

Добавлено: 14 апр 2014, 17:26
altwin
EspanaMia писал(а):каким образом это сделано например в стандартном SMS мессенджере, где загрузка всех SMS занимает не более 1 сек. ?
Что мешает посмотреть? https://github.com/android/platform_pac ... nList.java
Это класс так сказать main screen нативного смс приложения в Android.