dimanche 20 décembre 2015

How to run SQLite query asynchronously

I'm trying to get all the contacts from my SQLite database.

Everything is working fine, I just want to make it asynchronous and not run in the main thread, to not influence the UI.

public List<contacts> getAllcontacts() {
    List<contacts> contactsl = new LinkedList<contacts>();

String query = "SELECT  * FROM contacts WHERE show is not 'NOTSIGNEDUP'"
        +" ORDER BY name COLLATE NOCASE;";

SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query, null);

contacts contact = null;
if (cursor.moveToFirst()) {
    do {
        contact = new contacts();

        contact.setName(cursor.getString(1));
        contact.setNumero(cursor.getString(3));
        contact.setProfil(cursor.getString(2));
        contact.setShow(cursor.getString(5));
        contact.setBlocked(cursor.getString(4));
        contact.setObjectid(cursor.getString(6));
        contactsl.add(contact);
    } while (cursor.moveToNext());
}

return contactsl;
}

I'm calling this function from my activity :

  final sql s = sql.getInstance(getContext());


   if (ContactsList != null) {
       ContactsList.clear();
       ContactsList.addAll(list);
       ContactsList.addAll(s.getAllcontacts_());
       cAdapter.notifyDataSetChanged();
   }

Is there any way to make s.getAllcontacts() runs asyn

Aucun commentaire:

Enregistrer un commentaire