0

私は1つのデータベースヘルパーを使用してコンテンツプロバイダーを作成し、特定の挿入、削除、更新、クエリなどを実行するための「マネージャー」クラスの構築を開始しました。

マネージャーは、必要に応じて、マルチスレッドであると思われるカーソルアダプターのカーソルローダーを返します。

私の質問は、ローダーを含まないデータベースでアクションを実行するときに、新しいスレッドを作成する必要があるかどうかです。

例として、アクションバーから保存を実行する場合があります-インサートを手動でマルチスレッド化する必要がありますか?それは更新クエリ削除などにも当てはまりますか?

4

1 に答える 1

1

データベースアクションをマルチスレッド化するときは、かなり注意する必要があります。

  1. マルチスレッド化する必要がありますか?データベースが非常に大きく、実行しているアクションがデータベースに対して非常に重い場合を除いて、必要はないと思います。

  2. 安全ですか?スレッドが同じテーブルでアクションを実行している場合は、複数のスレッドを実行するときに非常に注意する必要があります。どのスレッドが最初に実行されるか、およびスレッドがデータベースに与える影響を確実に制御する必要があります。一般的に、これは賢明ではありません。

あなたの特定の問題の音から、私は複数のスレッドは必要ないと言うでしょう。おそらく、これがユーザーに影響を与えており、ユーザーができるだけ短い時間待機するようにしたい場合は、バックグラウンドスレッドを調べることができます。

于 2012-07-18T13:27:28.460 に答える