Methodenname | Überblick |
---|---|
startDelete(int token, Object cookie, Uri uri, String selection, String[] selectionArgs) | Asynchron löschen. |
startInsert(int token, Object cookie, Uri uri, ContentValues initialValues) | Asynchron einfügen. |
startQuery(int token, Object cookie, Uri uri, String[] projection, String selection, String[] selectionArgs, String orderBy) | Asynchron abfragen. |
startUpdate(int token, Object cookie, Uri uri, ContentValues values, String selection, String[] selectionArgs) | Asynchron aktualisieren. |
onDeleteComplete(int token, Object cookie, int result) | Wird aufgerufen, wenn die startDelete-Methode abgeschlossen ist |
onInsertComplete(int token, Object cookie, Uri uri) | Wird aufgerufen, wenn die startInsert-Methode abgeschlossen ist |
onQueryComplete(int token, Object cookie, Cursor cursor) | Wird aufgerufen, wenn die startQuery-Methode abgeschlossen ist |
onUpdateComplete(int token, Object cookie, int result) | Wird aufgerufen, wenn die startUpdate-Methode abgeschlossen ist |
Das erste Argument, Token, ist der Wert, mit dem der Prozess identifiziert wird. Das zweite Argument-Cookie ist das Objekt, das übergeben werden soll, wenn es abgeschlossen ist Das dritte Argument der nach Abschluss aufgerufenen Methode ist der Rückgabewert jeder entsprechenden Methode
class CustomAsyncQueryHandler extends AsyncQueryHandler {
private static final String[] PROJECTION = new String[]{UserColumns.ID, UserColumns.NAME, UserColumns.EMAIL};
private final AsyncQueryHandlerActivity activity;
CustomAsyncQueryHandler(ContentResolver cr, AsyncQueryHandlerActivity activity) {
super(cr);
this.activity = activity;
}
@Override
protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
super.onQueryComplete(token, cookie, cursor);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
activity,
android.R.layout.simple_list_item_2,
cursor,
PROJECTION,
new int[]{android.R.id.text1, android.R.id.text2});
activity.setListAdapter(adapter);
}
void insert(String name, String address) {
ContentValues value = new ContentValues();
value.put(UserColumns.NAME, name);
value.put(UserColumns.EMAIL, address);
startInsert(0, null, UserColumns.CONTENT_URI, value);
}
void delete() {
startDelete(0, null, UserColumns.CONTENT_URI, null, null);
}
void findAll() {
startQuery(0, null, UserColumns.CONTENT_URI, PROJECTION, null, null, null);
}
void findById(String where, String[] value) {
startQuery(0, null, UserColumns.CONTENT_URI, PROJECTION, where, value, null);
}
}
Activity
public class HogeHogeActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CustomAsyncQueryHandler asyncQueryHandler = new CustomAsyncQueryHandler(getContentResolver(), this);
// Delete
asyncQueryHandler.delete();
// Insert
for (int i = 1; i <= 50; i++) {
asyncQueryHandler.insert(UserColumns.NAME + i, UserColumns.EMAIL + i);
}
// Select
asyncQueryHandler.findAll();
}
}
Vielleicht gibt es einen besseren Weg, aber dies war damals die Lösung.
https://developer.android.com/reference/android/content/AsyncQueryHandler.html http://shop.oreilly.com/product/0636920029397.do
Recommended Posts