我的应用程序有一个问题,如果我回到某个活动,我会收到数据库已关闭的错误:
ERROR/AndroidRuntime(3566): Caused by: java.lang.IllegalStateException: database /data/data/com.kempville.app/databases/MyDB already closed
我在onResume()期间调用的方法中实例化,打开,实例化游标,执行查询,关闭游标并关闭数据库。当这个活动回到前面时,每当onResume被调用时,我都不知道什么是开放的。
private void getMydata() {
MyDb db;
db = new MyDB(this);
db.open();
Cursor c = db.getInfo(code);
startManagingCursor(c);
if (c.moveToFirst()) {
name = c.getString(c.getColumnIndex("name"));
}
c = fdb.getType(myArray.getString("type"));
startManagingCursor(c);
if (c.moveToFirst()) {
type = c.getString(c.getColumnIndex("type"));
}
c.close();
db.close();
答案 0 :(得分:1)
似乎startManagingCursor会尝试关闭它,尽管你已经自己关闭了它。删除startManagingCursor(它已被弃用)或更好地调用stopManagingCursor