我的应用程序有一个问题,如果我返回一个活动,我会收到一个错误,表明数据库已关闭:
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();