前言
好奇一个问题,我们在不同生命周期中去调用finish,那Activity的生命周期会怎么执行呢?带着这个问题,我们再看一下Activity生命周期:
测试代码如下
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("A", "onCreate: ");
}
@Override
protected void onStart() {
super.onStart();
Log.e("A", "onStart: ");
}
@Override
protected void onResume() {
super.onResume();
Log.e("A", "onResume: ");
}
@Override
protected void onPause() {
super.onPause();
Log.e("A", "onPause: ");
}
@Override
protected void onStop() {
super.onStop();
Log.e("A", "onStop: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.e("A", "onRestart: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("A", "onDestroy: ");
}
一、在onCreate中执行finish
二、在onStart中执行finish
PS:可以看到没有经过onPause
三、在onResume中执行finish
PS:完整的生命周期,不过这很正常,因为onResume是一个Activity正常启动后的最后一个生命周期
四、在onPause中执行finish
PS:也是完整执行了onStop、onDestroy
五、在onStop中执行finish
PS:没有执行onDestroy
六、在onDestroy中执行finish
PS:没什么好说的
七、在onRestart中执行finish
PS:本以为在onRestart后会直接走onDestroy,但是没有,居然是完整执行
网友评论