我在自定義視圖中以不同的方法多次使用相同的光標。我應該在每次使用後關閉遊標還是保持打開狀態,直到視圖被破壞?對於數據庫也是如此,一旦持有此視圖的活動被創建並在活動被銷燬時關閉,它可以被打開嗎?如上所述,我不斷收到錯誤'close()從未顯式調用數據庫...'。什麼時候應該關閉遊標和db?
3
A
回答
2
每次使用後我應該關閉遊標還是可以保持打開狀態直到 視圖被破壞?
取決於。如果遊標結果不會同時發生變化(例如,遠程連接修改數據庫),那麼就可以。不要忘記使用CursorLoader
讓Android自動管理您的光標(例如,如果您的應用崩潰,請關閉光標)。
而同樣的數據庫,可以一次被創建 持有這種觀點的活動被打開,當活動被銷燬關閉?
是的,你可以在onResume()
和關閉onPause()
回調打開,或當你知道你的數據庫是不會再被質疑。
我不斷收到錯誤「close()方法從未被明確要求數據庫 ......」當我做如上文所述。
只有當您的應用程序崩潰時,這纔是正常的。如果你像我上面所說的那樣做,就不應該發生。
1
一旦你不需要它們,你可能想要關閉與數據庫的所有連接。如果您稍後需要連接,則保持連接即可,即當活動被銷燬時關閉連接。
1
您可以嘗試將您的數據庫和遊標代碼移至onResume和onPause以避免該錯誤。但我想一個更簡潔的方法就是在您的活動中實施LoaderCallbacks。你有沒有考慮過?
相關問題
- 1. 什麼時候應該關閉遊標變量?
- 2. 什麼時候應該關閉SolrSearcher?
- 3. 什麼時候應該關閉DatabaseHelper?
- 4. 什麼時候應該關閉EntityManagerFactory?
- 5. 節點sqlite3什麼時候關閉db
- 6. 什麼時候應該打開和關閉MongoDB連接?
- 7. 什麼時候應該使用學說ORM和什麼時候zend-db-table?
- 8. ResultSet什麼時候關閉?
- 9. 什麼時候關閉ResultSet
- 10. 什麼時候應該在遊標中使用'for update nowait'?
- 11. 什麼時候應該使用sql遊標
- 12. 什麼時候應該關閉MapReduce作業中的HTablePool?
- 13. 什麼時候應該關閉PHP中的數據庫連接?
- 14. 什麼時候應該關閉SQLiteDatabase對象?
- 15. 什麼時候應該關閉數據庫連接?
- 16. 我什麼時候應該關閉,我提供給ListView控件
- 17. 我應該在哪裏關閉遊標?
- 18. 什麼時候應該去Silverlight和XNA?
- 19. 什麼時候應該用Nunjucks和Angular?
- 20. 什麼時候應該使用標準的html標籤/輸入,什麼時候應該使用asp.net控件?
- 21. 什麼時候應該擴展NSDocument,什麼時候應該擴展NSWindowController?
- 22. 什麼時候應該使用sed,什麼時候應該使用awk
- 23. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 24. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 25. 我們什麼時候應該上課,什麼時候不應該上課
- 26. 什麼時候應該使用async/await,什麼時候不用?
- 27. 什麼時候應該使用AWS,什麼時候不使用
- 28. 什麼時候DB表應該分成兩個單獨的表?
- 29. 什麼時候關閉WCF客戶端?
- 30. 什麼時候關閉Elasticsearch中的TransportClient?
好的。從這個錯誤可能來自哪裏的任何想法? db在onCreate()中打開並在onStop()中關閉,那麼它怎麼還說它沒有關閉? –