Ich arbeite an einer App, die die Telefonkontakte liest und sie in Form einer Liste anzeigt. Ich muss eine Nachricht an ausgewählte Kontakte aus der Liste senden. Aber das Problem ist, dass die App gehängt wird, wenn das Handy mehr als 500 Kontakte hat. Ich bekomme nicht, wo das Problem ist ..App wird gehängt, während ich versuche, Kontakte zu lesen
Ich habe diesen Code im Internet gefunden und in meiner App implementiert. Kontakte werden angezeigt, aber nach so viel Zeit. Hier ist mein Code
ContentResolver cr = getActivity().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));
if (Integer.parseInt(cur.getString(cur.getColumnIndex(
ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur =
cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"=?",
new String[]{id}, null);
while (pCur.moveToNext()) {
int phoneType = pCur.getInt(pCur.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.TYPE));
String phoneNumber = pCur.getString(pCur.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
switch (phoneType) {
case Phone.TYPE_MOBILE:
Log.e(name + "(mobile number)", phoneNumber);
break;
case Phone.TYPE_HOME:
Log.e(name + "(home number)", phoneNumber);
break;
case Phone.TYPE_WORK:
Log.e(name + "(work number)", phoneNumber);
break;
case Phone.TYPE_OTHER:
Log.e(name + "(other number)", phoneNumber);
break;
default:
break;
}
}
pCur.close();
}
} }
Und was ist dein Problem? Lags, Kontakte nicht angezeigt? Bitte geben Sie uns weitere Informationen –
veröffentlichen Sie Ihren Code auch – Stallion