[Android] アクティビティの onSaveInstanceState ライフサイクルについて

最近、大手企業の面接でアクティビティのライフサイクルについて質問されました。面接官はonSaveInstanceState電話が onStop の前か後かを強調して尋ねました。当時は少し混乱していて、支払いもしていませんでした。 onStop の前か後かに注意してください。

しかし、このメソッドがいつ呼び出されるかは重要でしょうか? データを保存して復元するためにのみ使用しますonRestoreInstanceState

重要かどうかは関係なく、面接官が質問してあなたが知らないのですから、確認しに行きましょう。

その後、作者が個人的にコードを書いて検証したところ、onStop の後に呼び出されていることが分かりましたが、同時にネットで他の人の回答も読んだところ、多くの資料が onPause の後、onStop の前に書かれていることが分かりました。私が個人的に確認したということは信頼できるのではないでしょうか?

そこで著者はGoogleの公式サイトにアクセスして公式の説明を確認したのですが、それを読んで衝撃を受けました。この方法については学ぶべきことがたくさんあることがわかりましたonSaveInstanceState

まずスクリーンショットを撮ります。

ここに画像の説明を挿入します

公式説明によると、このメソッドはアクティビティがシステムによって強制終了されたときにデータを保存するために使用されており、アクティビティの復元時またはライフサイクル中にデータを復元できonCreateますonRestoreInstanceState

onSaveInstanceState重要な点は、説明の最後の段落で、アプリケーションのターゲット プラットフォームが Android P (9) の場合、呼び出される場合はonSaveInstanceStateonStop の後に呼び出されること、ターゲット プラットフォームが Android 9 より前の場合、それが呼び出されることがonSaveInstanceState指摘されていることです。onStop の前に呼び出されますが、onPause であることは保証されません。前または後に呼び出されます。

私の認証がonStopの後だったのに、オンラインプロフィールではonStopの前だった理由がようやく分かりました。

では、onRestoreInstanceState同様の違いはあるのでしょうか?

ここに画像の説明を挿入します
状況に応じて、と の間でこのメソッドが呼び出されますが、バージョンの違いはありませんonStartonPostCreate

おすすめ

転載: blog.csdn.net/devnn/article/details/133081696