次の図(公式ドキュメントから)は、Androidアクティビティのよく知られたライフサイクルを示しています。
一方、アクティビティがシステムによって破棄されると(たとえば、メモリを解放する必要があるため)、次の図に示すように、メソッドのおよびを使用してアクティビティの状態が自動的に保存および復元されることがあります(また、公式ドキュメントから):onSaveInstanceState()
onRestoreInstanceState()
アクティビティが破棄されようとしているときに常に呼び出されるとonSaveInstanceState()
は限らないことを知っています。たとえば、ユーザーが「戻る」ボタンを押したために破棄された場合、アクティビティの状態は保持されません。しかし、状態が保存および復元され、onSaveInstanceState()
/ onRestoreInstanceState()
が呼び出された場合、正確にいつ呼び出されますか?
例えば、上記の図によれば、onRestoreInstanceState()
前と呼ばれるかもしれないonStart()
、または後にonStart()
しかしの前onResume()
、または後にonResume()
。同様に、にはいくつかの可能性がありonSaveInstanceState()
ます。それで、彼らはいつ正確に呼ばれますか?
理想的には、アクティビティのライフサイクルの状態と、存在する場合は保存/復元の方法を示す図を組み合わせて見たいと思います。