[Docs描述何时调用onRestoreInstanceState
:
当从先前保存的状态重新初始化活动时,在
onStart()
之后调用此方法,在此处已保存状态。 (...)在onStart()
和onPostCreate(Bundle)
之间调用此方法。仅在重新创建活动时才调用此方法。 如果由于任何其他原因调用onStart()
则不会调用该方法。
我很好奇在onStart()
的上下文中,“ [onRestoreInstanceState
被称为由于任何其他原因]”是什么意思?
Activity
的正常生命周期如下:
如果onStart()
被另一个onStop()
完全遮盖,则Activity
和Activity
之间的生命周期回调可能会反复发生。在这种情况下,当onStop()
被另一个Activity
完全遮盖时,将调用Activity
。当再次显示Activity
时,由于未创建onStart()
,因此将[onRestoreInstanceState()
。