3

_id、name、numberの3行のテーブルがあります。すべての行の列番号を異なる値で更新する必要があります。実際、私のコードは次のとおりです。

ContentValues values;
ContentResolver cr = getContentResolver();
int n[] = new int[10];
// functions to assign the values to n[]
for(int i=1; i<31;i++) {
    values = new ContentValues();
    values.put("number", n[i]);
    cr.update(MyProvider.CONTENT_URI_TABLE, values, "_id="+i, null);
}

このように、私は多くのUPDATEとデータベースへの複数のアクセスを使用する必要があります。手順を例示する方法はありますか?

4

1 に答える 1

7

このために、 ContentResolverでapplyBatch()メソッドを使用します。基本的に、更新/挿入/削除する内容を指定するContentProviderOperation型の配列を取ります。

作成しているコードを単純化することはできませんが、アクセスしているコンテンツプロバイダーにとっては有益な場合があります。ここでの利点は、コンテンツプロバイダーがこれらの更新をトランザクションに適用するようなことを実行できることです。

于 2012-11-13T14:34:16.913 に答える