android数据库已经关闭onResume

时间:2011-05-26 17:36:08

标签: android database onresume

我的应用程序有一个问题,如果我回到某个活动,我会收到数据库已关闭的错误:

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();

1 个答案:

答案 0 :(得分:1)

似乎startManagingCursor会尝试关闭它,尽管你已经自己关闭了它。删除startManagingCursor(它已被弃用)或更好地调用stopManagingCursor