我正在处理一个应用程序,它工作正常,但在日志中我可以看到下面提到的错误:PLease建议可能是这背后的原因以及如何解决这个问题.. 我已关闭所有游标,并在使用后关闭数据库连接。 请帮忙......
12-02 17:16:48.500:ERROR / Database(388):从未在数据库'/data/data/com.example.my/databases/my.db'上显式调用close() 12-02 17:16:48.500:错误/数据库(388):android.database.sqlite.DatabaseObjectNotClosedException:应用程序未关闭此处打开的游标或数据库对象 12-02 17:16:48.500:ERROR / Database(388):在android.database.sqlite.SQLiteDatabase。(SQLiteDatabase.java:1810) 12-02 17:16:48.500:ERROR / Database(388):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817) 12-02 17:16:48.500:ERROR / Database(388):在android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)
答案 0 :(得分:0)
您需要从活动的onDestroy
方法关闭数据库。假设您已经使用“数据库助手”类编写了应用程序,就像在Notepad等某些Android教程中那样,那么这应该适合您。 (否则,只需用适当的调用替换mDbHelper.close()
即可关闭数据库连接。)
public class MyClass extends Activity {
// ...
@Override
protected void onDestroy() {
super.onDestroy();
mDbHelper.close();
}
}