1

私は Android の初心者で、現在、バックグラウンドで作業できるようにローダーを使用してデータベースと対話するようにアプリを変換しようとしています。

データベースのクエリと更新を行うメソッドが既にいくつかあるので、それらをすべて OnCreateLoader メソッドに移動することを考えています。

唯一の問題は、OnCreateLoader メソッドが CursorLoader を返すことを想定しており、CursorLoader が ContentResolver のクエリ メソッドを自動的に呼び出すことです。

public Loader<Cursor> onCreateLoader(int id, Bundle args) {

CursorLoader に ContentResolver の更新または挿入メソッドを呼び出すにはどうすればよいですか?

または、これらのクエリにローダーを使用することは想定されていませんか?

4

2 に答える 2

4

Loaders はデータの読み取り用です。AsyncQueryHandlerは、挿入/更新/削除を簡単に行うために特別に設計された組み込みクラスです。

new AsyncQueryHandler(context.getContentResolver()){
    @Override
    onInsertComplete(int token, Object cookie, Uri uri)
    {
        // Insert completed successfully
    }
}.startInsert(0,    // token, used to distinguish inserts in onInsertComplete
              null, // cookie, used to distinguish inserts in onInsertComplete 
              uri,  // URI to update
              initialValues); // ContentValues to pass to your ContentProvider
于 2013-05-29T15:57:07.810 に答える
2

現在のところ、CursorLoaderデータの読み取りのみをサポートしています。データの更新を行いたい場合は、独自のAsyncTaskLoaderの作成を検討することをお勧めします。

または、これをすべて行っているように見えるCWAC LoaderExをチェックしてください。

于 2013-05-29T15:03:15.950 に答える