簡體   English   中英

什么時候應該關閉游標和數據庫?

[英]When should I close a cursor and db?

我在自定義視圖中以不同的方法多次使用相同的光標。 我應該在每次使用后關閉光標還是可以保持打開直到視圖被破壞? 對於數據庫來說,一旦創建了保存此視圖的活動並在活動被銷毀時關閉,它是否可以打開? 當我如上所述時,我不斷收到錯誤'close()從未在數據庫上顯式調用...'。

我應該在每次使用后關閉光標還是可以保持打開直到視圖被破壞?

要看。 如果光標結果不會同時改變(例如遠程連接修改DB),那就沒問題。 不要忘記使用CursorLoader讓Android自動管理光標(例如,如果你的應用程序崩潰,請關閉光標)。

對於數據庫來說,一旦創建了保存此視圖的活動並在活動被銷毀時關閉,它是否可以打開?

是的,您可以在onResume()打開並關閉onPause()回調,或者當您知道不再要查詢您的數據庫時。

當我如上所述時,我不斷收到錯誤'close()從未在數據庫上顯式調用...'。

只有當您的應用崩潰時,這才是正常現象。 如果你像我上面所說的那樣做,就不應該發生。

一旦不需要,您可能希望關閉與DB的所有連接。 如果稍后需要它們,保持連接是可以的,即在要銷毀Activity時關閉連接。

您可以嘗試將db和cursor代碼移動到onResume和onPause以避免該錯誤。 但我想,一個更干凈的方法就是在你的Activity中實現LoaderCallbacks 你考慮過嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM