2012-10-11 20 views
1

正在使用的数据库在我的应用程序时,我下面的错误Android中的DatabaseObjectNotClosedException?

执行我的应用程序显示

android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭在这里开

光标或数据库对象请帮助我如何解决这个错误

回答

0

你使用它后没有关闭你的数据库。所以你必须使用下面的语句关闭你的数据库。

db.close(); 
+0

在助手类或主类 – Vicky

+0

显示您的代码..我会告诉。 –

+0

等待我将显示 – Vicky

0

你应该总是关闭游标& Db的做了交易以后。
要记住,也关闭它在例外的情况下,..

你必须实现这样在你的类,这是扩展SQLite的Helper类:

@Override 
    public synchronized void close() { 
     if(db != null){ 
      db.close(); 
     super.close(); 
     } 
    } 
+0

谢谢,我会尝试这个 – Vicky

0
在mainclass通话

这种方法

db.close(); 

此方法添加到您的助手类

@Override 
    public synchronized void close() { 
     if(db != null){ 
      db.close(); 
     super.close(); 
     } 
    } 

更多有关Andorid Sqlite Database

+0

谢谢你会告诉我 – Vicky

0

可以完全避免打开/通过使你的数据库单身,这是在Android上推荐的方法关闭数据库。

的问题,只有当你想在多个线程访问数据库变得更糟。

检查出如何保持一个开放的数据库Android SQLite DB When to Close

虽然这解决了你还需要确保你做的时候关闭游标问题的例子这个问题,除非你使用Loader API将处理这个给你。