【面试题】Activity状态保存与恢复
2018-08-31 本文已影响0人
毕加森
- 保存数据
重写
onSaveInstanceState
方法,将需要保持的信息传入Bundle
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("key", "value");
}
- 恢复数据:通过
onCreate
onCreate
方法中通过判断Bundle
是否为null
来判断是否恢复数据
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
savedInstanceState.getString("key");
}
}
- 恢复数据:通过
onRestoreInstanceState
重写
onRestoreInstanceState
方法,获取Activity
被回收前保存的数据
重写时,应先调用super
方法,这样由系统负责保存的部分才能够恢复
onRestoreInstanceState
在onStart
和onResume
之间被调用
onRestoreInstanceState
只有在Bundle
不为null
时才会被回调
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
savedInstanceState.getString("key");
}
参考:
Activity 知识梳理(3) - Activity状态保存和恢复
Activity : 状态保存与恢复
你应该知道的Activity状态的保存与恢复