之前学的时候,视频或书上都是只有一个onCreate()方法,现在把其他的也补充上来。
activity有7个状态,下面这个图是官方提供的activity的生命周期图:
1、onCreate() 他会在活动第一次被创建时调用,一般在这个方法里进行初始化操作,比如加载布局,绑定事件等。
2、onStart() 这个方法在活动由不可见变为可见时调用
3、 onResume() 这个方法在活动准备和用户交互时调用,这时活动一定处于栈顶
4、onPause() 这个方法在系统准备去启动或者恢复其他活动是调用。通常在这个方法中将一些消耗CPU的资源释放掉。
5、onStop() 这个方法在活动处于完全不可见时调用,他和onPause()方法的区别在与,如果启动的新活动是对话框式的活动,那么onPause()方法会得到执行,而onStop()方法不会被执行
6、onRestart() 这个方法在活动由停止状态变为运行状态时调用
7、onDestroy() 这个方法在活动销毁之前调用,之后活动变为销毁状态。
由官方的周期图可以看出,当活动处于stop状态时,有可能被销毁,那么之前输入的信息会变没,那么再次退回到该界面时,体验效果会变差。那么此时可以用onSaveInstanceState()回调方法,这个方法保证在活动被销毁之前调用。
onSaveInstanceState()有一个Bundle参数,改类型的参数提供了一系列方法以供我们保存方法,如
public void onSaveInstanceState(Bundle state){ super.onSaveInstanceState(state);
String message="save this message";
state.putString("message",message);
}
那么怎么获取之前销毁活动前存放的信息呢,大家可能注意到了onCreate(Bundle savedInstanceState)方法了,这个方法自带参数,就是我们之前存放的这个参数,从这里可以获取之前存放的信息。
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstancedState!=null){
String msg=savedInstanceState.getString("message");
Log.d("onCreate",msg);
}
}
本文出自 “YuanGuShi” 博客,请务必保留此出处http://cm0425.blog.51cto.com/10819451/1942516