2012-04-01 58 views

回答

3

我個人比較喜歡關閉數據庫一旦我完成使用它,保持數據庫打開類似於保持FileStream打開,我不認爲這是一個好主意。根據您的使用情況,您應儘快在您的數據庫中撥打close();

UPDATE

關於你原來的問題,它是確定關閉的onDestroy()事件數據庫。

1

最好最好關閉onPause()方法中的數據庫。之後,如果操作系統需要資源,可能會在不通知的情況下終止該進程,這可能會損害您的數據庫。絕對不要推遲到onStop()onDestroy()。從the docs

onPause()是有保證要調用的過程可以被殺死,如果說之前的系統必須在緊急情況下恢復記憶,然後onStop()onDestroy()可能不會被稱爲最後一個方法。

另一種方法是將您的所有數據庫訪問權移動到服務或ContentProvider,這些服務或ContentProvider具有與操作系統交互的獨立生命週期和規則。

0

我從不顯式關閉SQLite數據庫。

我總是使用一個擴展了SQLiteOpenHelper的類,並且有方法來執行我所需要的任何操作,永遠不會永久引用數據庫本身。一旦SQLiteOpenHelper超出範圍,數據庫引用將被清除。

YMMV,但它涉及到你如何設計你的應用程序 - 在開始編程Android之前,我一直在SQL平臺上使用SQLite數據庫很多年,而且我還沒有損壞的數據庫。

0

只要不再需要該連接,並且還需要調用close(),則必須關閉數據庫連接。