我爱编程

Activity onSaveInstanceState(Bu

2018-04-13  本文已影响0人  卜卜Bruce

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);  
    }  
上一篇下一篇

猜你喜欢

热点阅读