2012-04-01 12 views

答えて

3

私は個人的にデータベースを開いたままにしておくとすぐにデータベースを閉じることを好むのですが、それは良いアイデアだとは思わないFileStreamを開いたままにしてください。あなたの使用に応じて、あなたのデータベース上でclose();をできるだけ早く呼び出す必要があります。あなたに元の質問について

UPDATE

は、onDestroy()イベントにデータベースを閉じるためにOKです。

1

最新のonPause()方法でデータベースを閉じることをお勧めします。その後、OSがリソースを必要とする場合には予​​告なしにプロセスを強制終了し、データベースに損傷を与える可能性があります。間違いなくこれをonStop()またはonDestroy()に延期しないでください。 the docsから:

onPause()は、プロセスが殺さ-場合することができます前に、システムは、その後onStop()onDestroy()が呼び出されていない可能性があり、緊急時にメモリを回復しなければならないと呼ばれることが保証の最後の方法です。

別の方法として、すべてのデータベースアクセスをサービスまたはContentProviderに移動することができます。これらのアクセスは、OSとの相互作用のための独自のライフサイクルとルールを持ちます。

0

明示的にSQLiteデータベースを閉じることはありません。

私は常にSQLiteOpenHelperを拡張するクラスを使用し、必要な処理を行い、データベース自体を永続的に参照することは決してありません。 SQLiteOpenHelperが有効範囲外になると、データベース参照がクリーンアップされます。

YMMVしかし、あなたのアプリをどのようにデザインするかは、私がAndroid用のプログラミングを始める前から、SQLiteデータベースをWindowsプラットフォームで長年働いてきたことがあります。

0

この接続が不要になったらすぐにデータベース接続を終了し、その接続をクローズするにはclose()を呼び出す必要があります。

関連する問題