は1 SqliteDatabaseHelperを使用して、それ単一のインスタンスにするために試してみてください。その後操作を完了した後にSqliteDatabaseインスタンスを閉じないでください。
あなたは多くの同時操作を持つデータベースの操作を開始すると、あなたが
database.beginTransaction(); /* for start transaction */
、操作を完了した後に使用する必要があり、この
http://www.sqlite.org/lockingv3.html
を参照してくださいそのためのデータベースのロックを実装することができますあなたが使用できるデータベースで
database.setTransactionSuccessful();
database.endTransaction();
しかし、トランザクション間でエラーが発生した場合は、トランザクションがロールバックされるようにdatabase.setTransactionSuccessful();
を設定しないでください。
また、あなたは、あなたが他のトランザクションではないトランザクションである、それはtrueを返した場合、現在のデータベースがdatabase.inTransaction();
によってトランザクション内にあるかどうか、エラー時に確認することができますまた、あなたがするかどうかを確認することができ
現在のデータベースがロックされているかどうかを問い合わせる
database.isDbLockedByCurrentThread();
database.isDbLockedByOtherThreads();
これはブール値を返します。
また、あなたは、あなたが複数のスレッドが削除されたメソッドの上
database.setLockingEnabled(boolean);
によって、同時にデータベースを読み書きしようとしている場合は、データベースをロックするかどうかを設定することができますがそれほど使用しないでください推奨されていません。
[this](http://notes.theorbis.net/2010/02/batch-insert-to-sqlite-on-android.html)メソッドを使用すると、挿入にかかる時間が短縮されます。 91秒 – DroidBot