【面试题】Activity状态保存与恢复

2018-08-31  本文已影响0人  毕加森

重写onSaveInstanceState方法,将需要保持的信息传入Bundle

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("key", "value");
}

onCreate方法中通过判断Bundle是否为null来判断是否恢复数据

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        savedInstanceState.getString("key");
    }
}

重写onRestoreInstanceState方法,获取Activity被回收前保存的数据
重写时,应先调用super方法,这样由系统负责保存的部分才能够恢复
onRestoreInstanceStateonStartonResume之间被调用
onRestoreInstanceState只有在Bundle不为null时才会被回调

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    savedInstanceState.getString("key");
}

参考:
Activity 知识梳理(3) - Activity状态保存和恢复
Activity : 状态保存与恢复
你应该知道的Activity状态的保存与恢复

上一篇下一篇

猜你喜欢

热点阅读