Activity的生命周期(Activity lifecycle),
了解Activity
生命周期后就可以在
Activity
不同状态时运行的函数中设置你的程序需要执行的工作代码了(最基础的Android编程就是这样,在各个组件不同状态执行的函数里写你自己的程序需要的代码)
整个周期所有转换的状态如下图
onCreate(Bundle bundle);
在Activity创建时调用的函数,主要用来做初始化的工作,比如创建视图、绑定数据等等,也可以该Activity
以前状态的
Bundle
做为参数进行初始化。
onStart();
当Activity正要变得为用户所见时被调用。
onRestart();
在Activity停止后,在再次启动之前被调用。
onResume();
在Activity开始与用户进行交互之前被调用。这时已经可以开始监听用户的点击输入等等事件了
onPause();
当系统将要启动另一个Activity时调用。主要用来将未保存的变化进行持久化。
onStop();
当Activity不再为用户可见时调用此方法。
onDestory();
在Activity销毁前调用,这是Activity接收的最后一个调用。
以上七个生命周期函数,
是Activity处于不同状态时调用不同的函数。
如果感觉看图和文字说明还不是很明白可以用LogCat这个日志工具来辅助熟悉理解。
LogCat日志工具主要就是用来方便调试的,当联机调试Android应用时可以在Android-Studio的控制台里看到日志输出。
日志分好几个等级
等级从低到高:
verbose :冗余,黑色字体显示
debug:调试,蓝色
字体显示
info:普通,绿色
字体显示
warning:警告,橙色
字体显示
error:错误 红色
字体显示
具体用哪个等级视具体情况决定,
例如 Log.e("running", "onCreate
()
running
");
就是一条error级别的日志输出,为了方便控制台查看可以设置一个自定义的标签来过滤显示你想要看的日志,函数前一个参数就是标签,比如设置为"
running
",而后一项就是日志内容。
下面就开始写代码了。
在原来的空项目的MainActivity类的代码基础上修改即可。
首先要导入log日志工具库
import android.util.Log;
然后重写里面的生命周期各个阶段的函数。
这里为了显示明显就用了红色的error级别。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("running", "onCreate() running");
}
@Override
protected void onStart() {
super.onStart();
Log.e("running", "onStart() running");
}
@Override
protected void onRestart() {
super.onRestart();
Log.e("running", "onRestart() running");
}
@Override
protected void onResume() {
super.onResume();
Log.e("running", "onResume() running");
}
@Override
protected void onPause() {
super.onPause();
Log.e("running", "onPause() running");
}
@Override
protected void onStop() {
super.onStop();
Log.e("running", "onStop() running");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("running", "onDestroy() running");
}
接下来各种情况跑几遍应用,看看日志,基本就可以了解Activity的生命周期了。