onDestroy()またはonStop()関数で閉じるべきですか?アンドロイドの活動ライフサイクルでデータベースをどこで閉じるべきですか?
答えて
私は個人的にデータベースを開いたままにしておくとすぐにデータベースを閉じることを好むのですが、それは良いアイデアだとは思わないFileStream
を開いたままにしてください。あなたの使用に応じて、あなたのデータベース上でclose();
をできるだけ早く呼び出す必要があります。あなたに元の質問について
UPDATE
は、onDestroy()
イベントにデータベースを閉じるためにOKです。
最新のonPause()
方法でデータベースを閉じることをお勧めします。その後、OSがリソースを必要とする場合には予告なしにプロセスを強制終了し、データベースに損傷を与える可能性があります。間違いなくこれをonStop()
またはonDestroy()
に延期しないでください。 the docsから:
onPause()
は、プロセスが殺さ-場合することができます前に、システムは、その後onStop()
とonDestroy()
が呼び出されていない可能性があり、緊急時にメモリを回復しなければならないと呼ばれることが保証の最後の方法です。
別の方法として、すべてのデータベースアクセスをサービスまたはContentProviderに移動することができます。これらのアクセスは、OSとの相互作用のための独自のライフサイクルとルールを持ちます。
明示的にSQLiteデータベースを閉じることはありません。
私は常にSQLiteOpenHelper
を拡張するクラスを使用し、必要な処理を行い、データベース自体を永続的に参照することは決してありません。 SQLiteOpenHelper
が有効範囲外になると、データベース参照がクリーンアップされます。
YMMVしかし、あなたのアプリをどのようにデザインするかは、私がAndroid用のプログラミングを始める前から、SQLiteデータベースをWindowsプラットフォームで長年働いてきたことがあります。
この接続が不要になったらすぐにデータベース接続を終了し、その接続をクローズするにはclose()を呼び出す必要があります。
- 1. どのようにすべての活動を終了し、アンドロイドでアプリケーションを閉じるには?
- 2. PHPでデータベース接続をいつ閉じるべきですか?
- 3. Androidでどのように活動を閉じることができますか?
- 4. WebSocketを閉じるべきですか?
- 5. どのように私はspecefic活動を閉じて、前の活動になるのですか?
- 6. LocalBroadcastManager、冗長な活動、活動のライフサイクル
- 7. 親の活動から子アクティビティを閉じることを
- 8. アンドロイドでPopUpWindowを作成する方法は、ディスプレイのどこでも閉じることができますか?
- 9. 活動launchmodeとライフサイクル
- 10. フォームが閉じるべきでないときに閉じる
- 11. 閉じるどこでも
- 12. アンドロイドの活動ライフサイクルが登録されていません。
- 13. なぜこのgetWindow()を使用するのですか?すべてのパネルをアンドロイドで閉じますか?
- 14. どのように私はアンドロイドの活動でSqliteデータベースを使用できますか?
- 15. ContentProviderでデータベースを閉じる
- 16. アンドロイド:レイアウトにListPreferenceで活動を開始することはできません
- 17. response.getOutputStream()でZipOutputStreamを明示的に閉じるべきですか?
- 18. このアクティビティを閉じるには? (アンドロイド)
- 19. エラーメッセージのポップアップをどのショートカットで閉じることができますか?
- 20. doWork()の "connection"引数を閉じるべきですか?
- 21. サーブレットの出力ストリームを閉じるべきですか?
- 22. カーソルとデータベースが閉じないアンドロイド
- 23. アンドロイド活動は向きが
- 24. 目に見えない活動を閉じるためにAndroidを避けることは可能ですか?
- 25. アンドロイドで活動をドラッグできるようにするにはどうすればいいですか?
- 26. アンドロイド:環境設定画面に対するユーザの要求に応じて、私の活動で活動
- 27. Jadeは閉じるべきではないSVG属性を閉じます
- 28. いつSQLiteDatabaseオブジェクトを閉じるべきですか?
- 29. スキャナをいつ閉じるべきですか?
- 30. Jersey 2.22:いつClientインスタンスを閉じるべきですか?