• Activity生命周期详解


      activity作为Android开发中一个最重要的组件之一,所以要对它有详细的了解

    1.当activity第一次创建时执行以下方法

     1 /**
     2      * 第一次创建activity调用
     3      *
     4      * @param savedInstanceState
     5      */
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_main);
    10         Log.i(TAG, "--------------->onCreate");
    11     }
    12 
    13     /**
    14      * activity变为可视状态调用
    15      */
    16     @Override
    17     protected void onStart() {
    18         super.onStart();
    19         Log.i(TAG, "--------------->onStart");
    20     }
    21 
    22     /**
    23      * activity的界面就可以和用户进行交互时调用
    24      */
    25     @Override
    26     protected void onResume() {
    27         super.onResume();
    28         Log.i(TAG, "--------------->onResume");
    29     }
    1 MainActivity: --------------->onCreate
    2 MainActivity: --------------->onStart
    3 MainActivity: --------------->onResume

    2. 当前activity启动另一个activity时执行的方法

     1  /**
     2      * 用户不可以和界面进行交互时调用
     3      */
     4     @Override
     5     protected void onPause() {
     6         super.onPause();
     7         Log.i(TAG, "--------------->onPause");
     8     }
     9 /**
    10      * activity处于不可见状态调用
    11      */
    12     @Override
    13     protected void onStop() {
    14         super.onStop();
    15         Log.i(TAG, "--------------->onStop");
    16     }
    1 MainActivity: --------------->onPause
    2 MainActivity: --------------->onStop

    3.从另一个activity返回到当前activity执行的方法

     1 /**
     2      * 当前activity没有被销毁重新启动时调用
     3      */
     4     @Override
     5     protected void onRestart() {
     6         super.onRestart();
     7         Log.i(TAG, "--------------->onRestart");
     8     }
     9 /**
    10      * activity变为可视状态调用
    11      */
    12     @Override
    13     protected void onStart() {
    14         super.onStart();
    15         Log.i(TAG, "--------------->onStart");
    16     }
    17  /**
    18      * activity的界面就可以和用户进行交互时调用
    19      */
    20     @Override
    21     protected void onResume() {
    22         super.onResume();
    23         Log.i(TAG, "--------------->onResume");
    24     }
    1 MainActivity: --------------->onRestart
    2 MainActivity: --------------->onStart
    3 MainActivity: --------------->onResume

    4.当前activity点击home键后执行的方法

     1  /**
     2      * 用户不可以和界面进行交互时调用
     3      */
     4     @Override
     5     protected void onPause() {
     6         super.onPause();
     7         Log.i(TAG, "--------------->onPause");
     8     }
     9 /**
    10      * activity处于不可见状态调用
    11      */
    12     @Override
    13     protected void onStop() {
    14         super.onStop();
    15         Log.i(TAG, "--------------->onStop");
    16     }
    1 MainActivity: --------------->onPause
    2 MainActivity: --------------->onStop

    5.从后台运行中进入activity执行的方法与 3 一样

    6.点击返回键时执行的方法

     1 /**
     2      * 用户不可以和界面进行交互时调用
     3      */
     4     @Override
     5     protected void onPause() {
     6         super.onPause();
     7         Log.i(TAG, "--------------->onPause");
     8     }
     9 /**
    10      * activity处于不可见状态调用
    11      */
    12     @Override
    13     protected void onStop() {
    14         super.onStop();
    15         Log.i(TAG, "--------------->onStop");
    16     }
    17 /**
    18      * 当activity销毁时调用
    19      */
    20     @Override
    21     protected void onDestroy() {
    22         super.onDestroy();
    23         Log.i(TAG, "--------------->onDestroy");
    24     }
    1 MainActivity: --------------->onPause
    2 MainActivity: --------------->onStop
    3 MainActivity: --------------->onDestroy

    7.当切换横竖屏时系统会销毁当前activity重新创建一个activity执行方法的先后顺序如下:

    1 MainActivity: --------------->onPause
    2 MainActivity: --------------->onStop
    3 MainActivity: --------------->onDestroy
    4 
    5 
    6 MainActivity: --------------->onCreate
    7 MainActivity: --------------->onStart
    8 MainActivity: --------------->onResume
  • 相关阅读:
    继承人人前端笔试题
    【转】ASP.NET应用程序生命周期趣谈
    C#中正则表达式的高级应用
    使用C#导入导出数据到Excel
    Server.Transfer详细解释
    防止刷新重复post提交
    程序只运行一次的方法
    注释很全的抽象工厂(没用简单工厂优化)
    利用反射动态调用类成员C#
    编程经历的一些思考
  • 原文地址:https://www.cnblogs.com/hejiaoshou/p/7467442.html
Copyright © 2020-2023  润新知