当我执行我的应用程序时,我在我的应用程序中使用数据库我显示以下错误
android.database.sqlite.DatabaseObjectNotClosedException:应用程序未关闭此处打开的游标或数据库对象
请帮我解决这个错误
答案 0 :(得分:0)
使用后没有关闭数据库。因此,您必须使用以下语句关闭数据库。
db.close();
答案 1 :(得分:0)
你应该总是关闭光标& Db做交易后..
并且在发生异常时请记得关闭它。
你必须在你的类中实现这样的扩展SQLite Helper类:
@Override
public synchronized void close() {
if(db != null){
db.close();
super.close();
}
}
答案 2 :(得分:0)
调用这个方法
db.close();
将此方法添加到helperclass
@Override
public synchronized void close() {
if(db != null){
db.close();
super.close();
}
}
的更多信息
答案 3 :(得分:0)
您可以通过将数据库设置为单例来完全避免打开/关闭数据库,这是Android中的推荐方法。
当您想要跨多个线程访问数据库时,问题会变得更糟。
查看此问题,了解如何保留单个开放数据库Android SQLite DB When to Close
的示例虽然这解决了这个问题,但你仍然需要确保在完成后关闭游标,除非你使用Loader API为你处理这个游标。