Androidアプリを実行し、ホームボタンを押してアプリに戻ると。すべてが維持されます (スコア、状態など)。OnResumeのOnPauseに行くと仮定します。
ただし、アプリの実行中に電話を受けると、アプリの状態がリセットされます (スコアがなくなったなど)。
何故ですか?onPause/OnResume も通過するべきではないでしょうか。
Androidアプリを実行し、ホームボタンを押してアプリに戻ると。すべてが維持されます (スコア、状態など)。OnResumeのOnPauseに行くと仮定します。
ただし、アプリの実行中に電話を受けると、アプリの状態がリセットされます (スコアがなくなったなど)。
何故ですか?onPause/OnResume も通過するべきではないでしょうか。
アプリがバックグラウンドに移行すると、Android OS は現在の要因 (使用可能なメモリなど) に基づいてアプリを強制終了するかどうかを決定します。その状態でアプリを維持するのに十分なリソースがない場合onPaused()
、それらは破棄されます (onStop()
その後に が続きonDestroy()
ます)。
onPause/OnResume も通過するべきではないでしょうか。
上記とドキュメントに基づいて、はい、それは入りますonPause
が、その後他のフェーズに入ります。
これは、あなたが読んだことを知っているドキュメントから役立つ便利な画像です。
電話がかかってきたら と を通過し、再び前面に出されると と を通過onPause
します。また、通過している可能性があり、元に戻すときに通過する可能性があります。各ライフサイクル メソッドにステートメントを配置して、どのメソッドが呼び出されているか (またはデバッガーのブレークポイント) を確認することをお勧めします。その後、ゲームを再開するためにどのようなアプローチを取るべきかがわかります。onStop
onStart
onResume
onDestroy
onCreate
Log
onDestroy
実際には、再起動したときに希望どおりにアプリが通過して回復できるように、アプリを実装する必要があります。