これについてはすでに多くの質問と回答があったことは知っていますが、私がやりたいことは問題ないという決定的な回答は見つかりませんでした。
基本的に、SQLiteOpenHelper
インスタンス化されるシングルトンが必要ですMyApplication.onCreate()
(拡張しますApplication
)。そうすれば、私のコードはシングルトンを呼び出すだけでgetWritableDatabase()
よく、データベースが開いているか閉じているかを管理したり、接続を切断して構築したりすることを心配する必要はありません。
絶対にしないつもりのシングルトンを呼び出すまで、接続はclose()
開いたままになるので、アプリケーションが実行されている限り、接続は開いたままになります。アプリケーションが強制終了されると、プロセス全体が強制終了されるため、db 接続と、db に関連付けられているすべてのリソースが強制終了されます。次にアプリケーションが実行されたときに、シングルトンを再度インスタンス化し、業務を続行します。
これは悪い考えですか?プロセスが強制終了された場合でも、db 接続を閉じないという問題が発生することはありますか? 私がこれをしたい理由は、多くのコードがActivity
ライフサイクルに強く結合されておらず、それに基づいてデータベースの有効期間を管理するのが本当に頭痛の種になるからです。