4

1つのアクティビティであるアプリがあります。

側面のボタンで電話(Gingerbreadを実行しているSamsung Galaxy Ace)をスリープ状態にした場合を除いて、すべてが期待どおりに機能します. これを行うと、次のものが呼び出されます(この順序で):

onPause、onStop、onDestroy、onCreate、onStart、onResume、onPause

これは電話を起こさずに、まだスリープ状態です - 画面はオフです。

アクティビティが完全に停止され、再作成されるのはなぜですか?

さらに奇妙なことに、電話をオンに戻すと、次のことが起こります。

onResume、onPause、onStop、onDestroyed、onCreate、onStart、onResume

「すぐに使える」(onPause に座っている) にもかかわらず、それは強制終了され、最初からやり直されます。

アプリが実行されているときにホームを押すと、アクティビティは停止されるだけで、強制終了されません。一度停止すると、電話をスリープ状態にしてから再び起動し、アクティビティが強制終了されることはありません。onRestart などに行くだけです...これは私が期待することです。

この動作は、アクティビティの実行中に (フォアグラウンドで) 電話がスリープ状態になった場合にのみ発生します。

アクティビティ ライフサイクルに関するドキュメントを読みましたが、この動作が発生する理由がわかりません。

4

1 に答える 1