Activity完整的生命周期是从onCreate
到onDestory
;
显示的生命周期从onStart
到OnStop
;广播的注册和反注册可以放在到这里
前台周期是onResume
到onPause
;当设备休眠,或者接受intent,都会进入这个周期,所以这两个函数中代码需要非常的轻量级。
生命周期如下:
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);
}
网友评论