美文网首页Android开发经验谈Android开发宝典Android开发
【Android】在Activity不同生命周期中调用finis

【Android】在Activity不同生命周期中调用finis

作者: FynnJason | 来源:发表于2019-07-08 17:50 被阅读10次

前言

好奇一个问题,我们在不同生命周期中去调用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,但是没有,居然是完整执行

相关文章

网友评论

    本文标题:【Android】在Activity不同生命周期中调用finis

    本文链接:https://www.haomeiwen.com/subject/ewhmhctx.html