使用するたびにカーソルを閉じる必要がありますか、それともビューが破棄されるまでカーソルを開いたままにすることができますか?
依存します。その間にカーソルの結果が変わらない場合(たとえば、リモート接続でDBを変更する場合)、問題ありません。 CursorLoader
を使用することを忘れないでください Androidにカーソルを自動的に管理させる(たとえば、アプリがクラッシュした場合にカーソルを閉じる)。
データベースについても同じですが、このビューを保持するアクティビティが作成されたら開いて、アクティビティが破棄されたときに閉じることができますか?
はい、onResume()
で開くことができます onPause()
で閉じます コールバック、またはデータベースがもう照会されないことがわかっている場合。
上記のように実行すると、「close()がデータベースで明示的に呼び出されたことはありません...」というエラーが継続的に発生します。
これは、アプリがクラッシュした場合にのみ正常です。私が上で言ったようにあなたがそれをしているなら、起こらないはずです。