5

状態に関するドキュメントonSaveInstanceState()

メソッドが呼び出される場合、常に onStop() の前に呼び出され、場合によっては onPause() の前に呼び出されます。

しかし、一貫して、常にonPause()ALWAYS CALLED BEFOREであるログ メッセージから気付きますonSaveInstanceState()。これら 2 つのメソッドにログ メッセージを入れました。onSaveInstanceState()before がどのような状況で呼び出されるかを理解するのを手伝ってくださいonPause()

環境: Android v4.0 (API 14) + Eclipse v3.7.1 - Indigo。

4

3 に答える 3

3

onPause() の前に onSaveInstanceState() が呼び出される状況を理解するのを手伝ってください

HONEYCOMB 以前のプラットフォームと他のプラットフォーム (HONEYCOMB 以降) では、アクティビティのライフサイクルに違いがあります。

API レベル >= 11 :onPause()が呼び出されたとき、プロセスは安全な状態にあり、強制終了できません。

API レベル < 11 :onPause()が呼び出されると、Activity をホストするプロセスが強制終了可能になります。これは、システムが他のコード行を実行することなく、アクティビティを含むプロセスを強制終了できることを意味します。したがって、これが発生したonSaveInstanceState()場合、 が呼び出されることはありません。これを避けるために、システムは のonSaveInstanceState()onPause()に呼び出す必要があります。そうしないと、ユーザー状態を保存できません。

于 2015-02-16T20:20:26.773 に答える