Android bekommen Sie einen cursor nur mit Kontakten, die Sie einer E-Mail aufgelistet >android 2.0

ich habe den folgenden code, um die Kontakte von content provider

String[] columns = new String[] {
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts._ID,
                ContactsContract.Contacts.PHOTO_ID };
        Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
                columns, null, null, null);

und ich diese benutzen, um die E-Mails für einen bestimmten Kontakt durch Ihre id:

Cursor emails = getContentResolver().query(
                    ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                    null,
                    ContactsContract.CommonDataKinds.Email.CONTACT_ID
                            + " = " + contact.getContactId(), null, null);

meine aktuelle Implementierung geht jeder Zeile in der der cursor und erwirbt seine E-Mails und speichert diese in einer arrayList von java-Objekten.

was ich Frage mich, ob es möglich war, zu tun, ist nur die Abfrage der Inhalte-Anbieter und Rückgabe eines cursor nur Kontakte mit den ids/Namen etc haben eine E-Mail-Adresse aufgeführt.

diese Weise hat eine lange Wartezeit für erste Kontakte in der Liste. ich bin mit dieser Liste für eine Liste der adapter. wenn ich nur die Kontakte, die eine E-Mail ich kann über cursor-adapter in meiner Liste.

Ist so etwas möglich? wie kann ich den Prozess beschleunigen?

InformationsquelleAutor der Frage DArkO | 2011-03-05

Schreibe einen Kommentar