我是Android的新手,我为初学者读了一本书,说明在系统回收你的onSaveInstanceState(Bundle)
之前确保调用Activity
。
我尝试了一些测试代码并发现它不正确。我发现每次调用onSaveInstanceState(Bundle)
后都会调用onPause()
。它与系统回收无关。
我不是很确定,所以问题是:onSaveInstanceState(Bundle)
何时被实际调用?
答案 0 :(得分:2)
我不同意之前的回答 根据{{3}}:
如果调用,此方法将在onStop()之前发生。没有 保证是否会在onPause()之前或之后发生。
答案 1 :(得分:1)
此外,在将活动置于这样的背景状态之前调用方法
onSaveInstanceState(Bundle)
,允许您将活动中的任何动态实例状态保存到给定的Bundle中,以便稍后在{{1如果需要重新创建活动。有关流程生命周期如何与其托管的活动相关联的详细信息,请参阅流程生命周期部分。请注意,在onCreate(Bundle)
而不是onPause()
中保存持久数据非常重要,因为后者不是生命周期回调的一部分,因此不会在其文档中描述的每种情况下调用。
在onSaveInstanceState(Bundle)
之前调用onPause()
。但onSaveInstanceState(Bundle)
保证被称为活动的一部分life cycle
通常在重新创建活动时,例如当您更改设备方向时,如果您未在onPause()
文件中指定onSaveInstanceState(Bundle)
标记,则会调用android:configChanges
。