美文网首页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