当我执行我的应用程序时,我在我的应用程序中使用数据库我显示以下错误
android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭此处打开的游标或数据库对象
请帮助我如何解决这个错误
当我执行我的应用程序时,我在我的应用程序中使用数据库我显示以下错误
android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭此处打开的游标或数据库对象
请帮助我如何解决这个错误
您可以通过将数据库设置为单例来完全避免打开/关闭数据库,这是 Android 中推荐的方法。
当您想跨多个线程访问数据库时,问题只会变得更糟。
查看此问题以获取有关如何保持单个打开数据库Android SQLite DB 何时关闭的示例
虽然这解决了问题,但您仍然需要确保在完成后关闭游标,除非您使用 Loader API 为您处理此问题。
使用后您没有关闭数据库。因此,您必须使用以下语句关闭数据库。
db.close();
进行事务处理后,您应该始终关闭游标和 Db ..
并记住在出现异常时也要关闭它..
您必须在扩展 SQLite Helper 类的类中实现这样的功能:
@Override
public synchronized void close() {
if(db != null){
db.close();
super.close();
}
}
在你的主类中调用这个方法
db.close();
将此方法添加到您的助手类
@Override
public synchronized void close() {
if(db != null){
db.close();
super.close();
}
}