解決 DatabaseObjectNotClosedException

今天在運行測試應用的時候出現以下exception:

 

04-05 17:09:21.988: E/Database(3101):android.database.sqlite.DatabaseObjectNotClosedException: Application did notclose the cursor or database object that was opened here

 

貌似說我沒有關掉數據或者數據庫遊標,可是查了半天代碼也找不到哪裏錯了,因爲所有用到的db或者cursor 都寫close()函數,不曉得爲什麼還會出現這樣的問題。

 

後來我又仔細察看了log,發現在該exception之前又出現了NullPointerException, 而且發出該NullPointerException的地方是在cursor.close()之前,也就是說前一個exception導致程序退出,退出時發現cursor沒關,於是又報了一個DatabaseObjectNotClosedException.

現在解決辦法是在使用cursor的地方加了一個,try{}catch{}finally{}, 把cursor.close()放在finally裏面最保險了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章