アプリケーションが永続データを保存する必要がある場合は、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. アンドロイド - onPause、onStop、onSaveInstanceStateに格納されたデータ
- 4. 保存しなかったJPA-Hibernate永続データ
- 5. アンドロイドはonPauseまたはonDestroyにゲームの状態を保存しますか?
- 6. WebViewの履歴は永続的に保存できますか?
- 7. onPause()とonStop()が動作しない
- 8. 永続データをonPause()に保存すると、後でその変更をキャンセルするにはどうしたらいいですか?
- 9. 変数の状態を保存する以外に、onPause、onStop、onDestroyの良い習慣は何ですか?
- 10. /tomcatで永続データを保存する場所/方法は?
- 11. ContentProviderはアトミックを呼び出しますか? onActivityCreated、古いデータを読み込み、onPauseに保存します。
- 12. ファイルを永続的に保存する
- 13. Androidで永続データを保存するためにアプリケーションクラスを使用する
- 14. 永続的なクッキーを保存しています
- 15. APIは自分のデータベースである永久にデータを保存しますか?
- 16. ApplicationDataは、onPauseでデータを保存する場所として安全ですか?
- 17. Android:永続的なデータを保存する
- 18. 2D配列を永続ストレージに保存する方法はありますか?
- 19. データをAndroidアプリに永久保存したい
- 20. APIはウェブサイトから永久に抽出されたデータを保存しますか?
- 21. TabControlにデータを保存しますか?
- 22. アンドロイドはユーザーの設定を永久保存しますか?
- 23. Windowsモバイルデバイスエミュレータ - 設定を永続的に保存する方法は?
- 24. 永続的なCLLocationの保存
- 25. XMLデータをNSUserDefaultsまたはDocuments Directoryに保存します
- 26. 永久に入力されたデータはどのように保存しますか?
- 27. onPause、onResume、onStop、onStartなど、発射しない - ライフサイクル?
- 28. 治療スパイダーは状態を保存しません(永続状態)
- 29. xhrポーリングを伴う永続データをSocket.IOに保存するにはどうすればよいですか?
- 30. アプリケーションクラスはストアデータに使用できますか? (永続データ)
それは私が思ったことです。 'onPause()'と 'onStop()'にデータを保存すると、すべての可能なユースケースが捕捉されます。確かに、おそらく 'onPause()'は "最も安全な"ものですが、私は安全であるだけでなく、絶対安全なアプリにしたいと考えています。 –