アクティビティが一時停止しているときにデータベースを閉じるのがベスト プラクティスですか? それとも、アクティビティの状態に関係なく、データベースを開いたままにしても安全ですか?
onPause() でデータベースを閉じてから onResume() で再度開くと、null ポインター例外がスローされ、既に閉じられているカーソルからデータベースを再クエリしようとしていることがわかります。. .
それをonDestroy()
閉じるのが最善の方法です。
データベースを閉じることはなくonCreate
、カスタムApplication
クラスの実装で開きます。
方法はありますonTerminate
が、ドキュメントには実行されないと記載されているため、アプリケーションがいつ終了するかを実際に確認する方法はありません。
never close database
パターンに問題はありませんでした。
エラーを投稿できますか?私は通常、onPause メソッドでデータベースを閉じ、onResume メソッドで開きます。onDestroy が常に呼び出されるとは限らないことを読んだからです。しかし、あなたの場合、問題は閉じられていないカーソルにあると思います。しかし、logcat とコードを投稿するようにお願いする理由がよくわかりません。