我注意到关于这个例外有几个问题。但他们并没有解决我的问题。
我有一个 databaseHelper 类,它有一个扩展 SQLiteOpenHelper 的内部类:
private static class OpenHelper extends SQLiteOpenHelper {
OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w("DBHELPER", "Upgrading database");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
我有一项服务可以不断更新数据库。还有一个从 db 获取数据的活动。
在服务和活动中都创建了 dbHelper:
this.dh = new DatabaseHelper(this);
我确实得到了 DatabaseObjectNotClosedException。我需要关闭 DatabaseHelper 吗?我该怎么做?或者我该如何解决这个问题?