2012-10-11 62 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將處理這個給你。