Я делаю свое первое приложение для Android, и сначала я взял несколько учебников по sqlite, которые научили меня использовать databaseHelper, который расширяет SQLiteOpenHelper. Поэтому мой DatabaseHelper расширяет SQLiteOpenHelper. Я получаю предупреждение об утечке соединения sqlite в Logcat, поэтому мне бы хотелось, чтобы некоторые советы о том, что делать, чтобы исправить это.Объект соединения SQLite просочился - Android
Я получаю эту ошибку:
02-01 21:39:50.740: W/SQLiteConnectionPool(32061): A SQLiteConnection object for database '/data/data/com.btf271.fashionassistant/databases/clothingManager' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
Моего databaseHelper функции, которые вызываются, когда происходит утечка:
public List<Sticker> getObjectsByGenderAndCategory(String gender, String category) {
List<Sticker> objects = new ArrayList<Object>();
String selectQuery = String.format(
"SELECT * FROM %s WHERE %s = \"%s\" AND %s = \"%s\"",
TABLE_OBJECT, KEY_GENDER, gender, KEY_CATEGORY, category);
Log.e(LOG, selectQuery);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
try{
// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
Object o = createClothingItemJavaObject(c);
// adding to object list
objects.add(o);
} while (c.moveToNext());
}
}finally {
c.close();
db.close();
}
return objects;
}
я нашел this which I will try tomorrow. It's late.
Спасибо.
Возможный дубликат [SQLite Connection просочился, хотя все закрыто] (http://stackoverflow.com/questions/18147354/sqlite-connection-leaked-although-everything-closed) – sjas