アプリケーションが永続データを保存する必要がある場合は、onStop()
メソッドに加えて、onPause()
メソッドで必ず実行する必要があります。onStop()
とonDestroy()
メソッドが呼び出されないためです。onPause()またはonStop()に永続データを保存しますか?
答えて
でそれを行う必要がなくなことは、あなたのアプリケーションは、いくつかの永続的なデータを保存する必要がある場合には、必ず他に、onPause()メソッドでそれを行う必要があることは事実でありますonStop()メソッドに
短い答え: TRUE、onPause()
は、さらに信頼性の高いonStop()
以下です。そして、onStop()
とonDestroy()
を呼び出さずにプロセスを強制終了する可能性が最も高い。
なぜですか?
あなたはメソッドが呼び出される順序をはっきり見ることができます:
活動のライフサイクルの図は、このシナリオで最高の援助があります。あなたが見ることができる最も安全な選択肢はonPause()
で、ユーザーがあなたのアクティビティを離れていることを最初に示したもので、onStop()
は、アプリケーションが停止状態に入ったことを示します。最後にonDestroy()
メソッドがあります。したがって、一番早く永続データを保存するにはonPause()
を選択するのが最も安全です。 チャンスとアクティビティの状態と放出との間の相関関係が明確にこの表で提供されています:さらに
重要なデータはに保存する必要があります。これは、アクティビティがフォーカスを失ったときやユーザーがアプリを終了するときに常に呼び出されるためです。一方、onStop
は、ユーザーがアプリを終了しているときにのみ呼び出されますが、別のアクティビティに切り替える(フォーカスが失われた)ときには呼び出されません。また、あなたのアクティビティがバックグラウンドにある場合、アンドロイドは暗いメモリで強制的にアプリケーションプロセスを終了させます。この場合、onStop
は呼び出されません。onDestroy
が呼び出されます。だから、あなたはあなたの永続性のコードを実行する必要がどこは、onStop
のポーズでは唯一guarantedする場所です。 –
@ ConstantinPribluda私の答えはあなたのコメントの冗長バージョンです – Dummy
ライフサイクルダイアグラムを見ると、onPause()が呼び出されずにアプリが殺されるというユースケースがあるようです。 –
- 1. ZookeeperはHbaseの永続データを保存しますか
- 2. コールアラートダイヤルonStop/onPause
- 3. データベースにデータを永続的に保存できません
- 4. アンドロイド - onPause、onStop、onSaveInstanceStateに格納されたデータ
- 5. 保存しなかったJPA-Hibernate永続データ
- 6. アンドロイドはonPauseまたはonDestroyにゲームの状態を保存しますか?
- 7. Springのデータ保存は永続コンテキストでPKを更新しませんか?
- 8. WebViewの履歴は永続的に保存できますか?
- 9. onPause()とonStop()が動作しない
- 10. 変数の状態を保存する以外に、onPause、onStop、onDestroyの良い習慣は何ですか?
- 11. 永続データをonPause()に保存すると、後でその変更をキャンセルするにはどうしたらいいですか?
- 12. ライフサイクルコールバックonPause()とonStop()に関するAndroidの矛盾したドキュメント
- 13. ContentProviderはアトミックを呼び出しますか? onActivityCreated、古いデータを読み込み、onPauseに保存します。
- 14. /tomcatで永続データを保存する場所/方法は?
- 15. アクティビティは自身のonPause()、onStop()を呼び出すことはできますか?
- 16. ファイルを永続的に保存する
- 17. 永続的なクッキーを保存しています
- 18. Androidで永続データを保存するためにアプリケーションクラスを使用する
- 19. APIは自分のデータベースである永久にデータを保存しますか?
- 20. ApplicationDataは、onPauseでデータを保存する場所として安全ですか?
- 21. 2D配列を永続ストレージに保存する方法はありますか?
- 22. Android:永続的なデータを保存する
- 23. データを永続的に保存するための最も簡単な方法
- 24. プロセスを永続的に保ちます
- 25. AndroidのonStopは、ホーム画面に行くとvs onPauseと呼ばれます。
- 26. 保存メソッドがエンティティオブジェクトを永続させないSpringデータJPA
- 27. データをAndroidアプリに永久保存したい
- 28. WebClientはどこにダウンロードしたデータを保存しますか?
- 29. APIはウェブサイトから永久に抽出されたデータを保存しますか?
- 30. データをcoredataに保存しますか?
それは私が思ったことです。 'onPause()'と 'onStop()'にデータを保存すると、すべての可能なユースケースが捕捉されます。確かに、おそらく 'onPause()'は "最も安全な"ものですが、私は安全であるだけでなく、絶対安全なアプリにしたいと考えています。 –