2012-03-18 26 views
0

這是什麼讓我難住。我在onCreate方法中打開數據庫 然後我調用一個函數來打開一個遊標做一堆事情,然後在該函數結束時關閉遊標。我收到「應用程序沒有關閉在這裏打開的遊標或數據庫對象」,但我放入命令關閉它

然後我把將OnPause和我調用super.onPause功能

之前關閉數據庫,我也得到了重新打開數據庫,並調用相同的功能上創建一個名爲刷新數據的onResume。

Finnaly我有一個onDestroy函數,它在調用super.onDestroy之前也關閉數據庫。

下面是有關數據庫 http://pastebin.com/GVcnsVCc

,這裏是我的錯誤的部分: http://pastebin.com/Vd6Sdqzp

此外,當我開始這個活動還是我沒有得到任何錯誤,而我就可以了,這是當我點擊某件事物從這一件事中發現另一個活動時,我得到的錯誤。

+0

不需要在onPause和onDestroy中關閉它,只需onPause即可。在你的'onPause' if語句中放一個日誌消息來看它是否真的關閉它 – Blundell 2012-03-18 23:04:16

回答

0

不要startManagingCursor(c)。這是a)現在已棄用,b)將嘗試關閉()和重新查詢()光標給你。這也意味着你不能關閉()你自己的光標,因爲你也需要關閉數據庫。 (tbh它將與stopManagingCursor(c)一起使用)

由於您似乎自己處理查詢,因此您可以簡單地跳過該部分。

也可以在完成getdata()後直接關閉數據庫。除非您在應用程序處於活動狀態時不斷讀/寫數據,否則無需保持打開狀態。

相關問題