美文网首页
【面试题】Activity状态保存与恢复

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

作者: 毕加森 | 来源:发表于2018-08-31 14:13 被阅读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方法,这样由系统负责保存的部分才能够恢复
    onRestoreInstanceStateonStartonResume之间被调用
    onRestoreInstanceState只有在Bundle不为null时才会被回调

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

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

    相关文章

      网友评论

          本文标题:【面试题】Activity状态保存与恢复

          本文链接:https://www.haomeiwen.com/subject/cyvswftx.html