最近、アプリケーションで次のエラーが発生し始めました。これは特定の場所ではなく、すべてのデータの読み取り/書き込み機能をループする場合にのみ再現できます。それはかなりどこにでも出てきます。
09-14 08:52:15.089: WARN/SQLiteConnectionPool(19268): The connection pool for database '/data/data/com.nnn/databases/data.db' has been unable to grant a connection to thread 1 (main) with flags 0x5 for 30.000002 seconds.
Connections: 0 active, 1 idle, 0 available.
これを回避する方法はありますか?どういうわけか、データベースへのすべての接続を使い果たしていることを理解していますか? 私はアプローチ#1を使用しています:http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html
そして、私のデータベースコードは次のようになります:
public class DatabaseHelper extends SQLiteOpenHelper
{
private final static String LOG_TAG = "com.nnnn.data.DatabaseHelper";
private static final String DATABASE_NAME = "data.db";
private static final int DATABASE_VERSION = 260;
private static SQLiteDatabase databaseInstance;
public DatabaseHelper()
{
super(MyApplication.Me, DATABASE_NAME, null, DATABASE_VERSION);
}
public static synchronized SQLiteDatabase getDatabase()
{
if (databaseInstance == null) databaseInstance = (new DatabaseHelper()).getWritableDatabase();
return databaseInstance;
}