实验代码
实验现象:在进入相应状态的时候会在控制台打印出当前状态的信息。
public class MainActivity extends AppCompatActivity {
/*1.onCreate:
每个Activity在写代码的过程中都会看见这个函数,
是声明周期的第一个方法。
一般做一些资源和数据初始化的工作,
比如绑定相对应的资源布局setContentView*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("onCreate", "onCreate: ");
}
/*2.onRestart:
字面意思表示Activity重新启动,这个状态一般由用户切换应用的行为产生,
比如从应用切换到桌面或者切打开新的Activity,
此时这个Activity就会调用onPause和onStop让这个Activity进入展厅状态。
再回到这个Activity就是onRestart了*/
@Override
protected void onRestart() {
super.onRestart();
Log.d("onRestart", "onRestart: ");
}
/*3.onStart:
这个状态我理解就是Activity启动中的一个过程,
就是启动中,但是还不能与用户交互(用户不可见),
属于一个在后台的状态*/
@Override
protected void onStart() {
super.onStart();
Log.d("onStart", "onStart: ");
}
/*4.onResume:
表示Activity已经可见,且已经开始活动。
与onStart类似的状态但是就是属于一种在前台的状态*/
@Override
protected void onResume() {
super.onResume();
Log.d("onResume", "onResume: ");
}
/*5.onPause:
是一个非常微妙的状态,处于正在停止的一个临界点,
就很难重现这种状态,就是在停止过程中,
先执行onPause然后在onStop执行之前,
回到Activity执行onResume,这期间就是onPause的状态。
此处可以做一些存储数据停止动画的工作,但是不能太耗时,
不然会影响到新Activity的显示,只有这些操作做完,
新Activity的OnResume才会执行。*/
@Override
protected void onPause() {
super.onPause();
Log.d("onPause", "onPause: ");
}
/*6.onStop:
表示Activity即将停止,可以做一些相对重量级的回收工作,
同样不能太耗时。*/
@Override
protected void onStop() {
super.onStop();
Log.d("onStop", "onStop: ");
}
/*onDestroy
表示Activity即将被销毁,这是Activity生命的尽头,
可以做一些回收工作和资源的释放。*/
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("onDestroy", "onDestroy: ");
}
}