最近了解了一些关于Android的savedInstanceState相关的知识,在此进行一下总结。
在Android的Activity控件中的onCreate方法中,我们可以获得的一个参数为savedInstanceState:
@Override
protected void onCreate(Bundle savedInstanceState)
该参数的作用是什么呢?
这时,我们就得提到构造savedInstanceState的另一个方法:
@Override
protected void onSaveInstanceState(Bundle outState)
该方法的作用为:
Called to retrieve per-instance state from an activity before being killed so that the state can be restored in onCreate(Bundle) or onRestoreInstanceState(Bundle) (the Bundle populated by this method will be passed to both).
即:用于保存Activity被杀死前一刻的每个实例的状态,然后当Activity被重启时,传递给onCreate与onRestoreInstanceState方法
该方法的调用时间为:
This method is called before an activity may be killed so that when it comes back some time in the future it can restore its state.
即:当一个Activity可能被杀死时调用。由于是在Activity可能被杀死时调用,但许多情况下调用了onSaveInstanceState方法后Activity并不一定会被杀死,因此其与调用onCreate与onRestoreInstanceState并不是成对的。常见的调用时间有:
- 当用户按下HOME键时
- 长按HOME键,选择运行其他的程序时
- 按下电源按键(关闭屏幕显示)时
- 从activity A