美文网首页我爱编程
Activity onSaveInstanceState(Bu

Activity onSaveInstanceState(Bu

作者: 卜卜Bruce | 来源:发表于2018-04-13 22:40 被阅读0次

    Activity完整的生命周期是从onCreateonDestory;
    显示的生命周期从onStartOnStop;广播的注册和反注册可以放在到这里
    前台周期是onResumeonPause;当设备休眠,或者接受intent,都会进入这个周期,所以这两个函数中代码需要非常的轻量级。
    生命周期如下:

    activity_lifecycle.png

    onpause之后Activity都可能被杀掉,所以最好把数据的持久化存储放到onpause里面处理。

    onSaveInstanceState

    当一个activity被杀之前会调用onSaveInstanceState,这个时候可以保存activity的当前信息到指定的Bundle中,当再次回到这个activity的时候,可以在onCreate 或者 onRestoreInstanceState中恢复状态。
    Android P版本以后 onSaveInstanceState 在onStop之后调用,之前的版本 在onStop之前调用,并且不确定是onPause之前还是之后。

        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            // 从savedInstanceState中恢复数据, 如果没有数据需要恢复savedInstanceState为null  
            if (savedInstanceState != null) {  
                temp = savedInstanceState.getString("temp");  
                System.out.println("onCreate: temp = " + temp);  
            }  
        }  
        @Override  
        protected void onSaveInstanceState(Bundle outState) {  
            super.onSaveInstanceState(outState);  
            outState.putString("temp", temp);  
        }  
    

    相关文章

      网友评论

        本文标题:Activity onSaveInstanceState(Bu

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