1つのアクティビティであるアプリがあります。
側面のボタンで電話(Gingerbreadを実行しているSamsung Galaxy Ace)をスリープ状態にした場合を除いて、すべてが期待どおりに機能します. これを行うと、次のものが呼び出されます(この順序で):
onPause、onStop、onDestroy、onCreate、onStart、onResume、onPause。
これは電話を起こさずに、まだスリープ状態です - 画面はオフです。
アクティビティが完全に停止され、再作成されるのはなぜですか?
さらに奇妙なことに、電話をオンに戻すと、次のことが起こります。
onResume、onPause、onStop、onDestroyed、onCreate、onStart、onResume
「すぐに使える」(onPause に座っている) にもかかわらず、それは強制終了され、最初からやり直されます。
アプリが実行されているときにホームを押すと、アクティビティは停止されるだけで、強制終了されません。一度停止すると、電話をスリープ状態にしてから再び起動し、アクティビティが強制終了されることはありません。onRestart などに行くだけです...これは私が期待することです。
この動作は、アクティビティの実行中に (フォアグラウンドで) 電話がスリープ状態になった場合にのみ発生します。
アクティビティ ライフサイクルに関するドキュメントを読みましたが、この動作が発生する理由がわかりません。