zoukankan      html  css  js  c++  java
  • Activity系列讲解---三大基本状态与七大生命周期函数

       简介:四大组件之一,在应用中一个Activity可以用来表示一个界面,可以理解为用户可视化界面,一个android应用必须通过Activity来运行和启动。

    1.三大基本状态与七大生命周期函数

    2.代码实现---LifeCycleActivity.class

    /**
     * Activity的三个状态和七大生命周期方法分析
     *
     */
    public class LifeCycleActivity extends AppCompatActivity {
    
        /**
         * Activity创建时第一个调用的方法,通常我们在该方法中加载布局文件,初始化UI组件,事件注册等等
         * @param savedInstanceState
         */
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_life_cycle);
            System.out.println("Activity---->onCreate");
        }
    
        /**
         * 在onCreate()之后调用,用于显示界面,但用户还不能进行交互
         */
        @Override
        protected void onStart() {
            super.onStart();
            System.out.println("Activity---->onStart");
        }
        /**
         * 在onStart()之后调用,该方法执行完成后,用户可以进行交互,当前Activity进入Resumed状态
         * 当一个paused状态的activity被重新返回时,会再次调用该方法,让activity进入运行状态
         */
    
        @Override
        protected void onResume() {
            super.onResume();
            System.out.println("Activity---->onResume");
        }
    
    
        /**
         * 当其它activity(透明或窗口模式)进入时,会被调用,让当前activity进入paused状态(暂停状态)
         * 当前activity还可见但不可交互,如果其它更高优先级的APP需要内存时,当前activity可能会被销毁(kill)
         * 当前activity被返回时会调用onResume()
         */
        @Override
        protected void onPause() {
            super.onPause();
            System.out.println("Activity---->onPause");
        }
    
        /**
         * 当其它activity完全覆盖该activity时,会被调用,当前activity进入stop状态(停止状态)
         * 当前activity不可见,如果其它更高优先级的APP需要内存时,当前activity可能会被销毁(kill)
         * 当前activity被返回时会调用onRestart()
         */
        @Override
        protected void onStop() {
            super.onStop();
            System.out.println("Activity---->onStop");
        }
    
        /**
         * 当一个stopped状态的activity被返回时调用,之后再调用onResume方法进入运行状态
         */
        @Override
        protected void onRestart() {
            super.onRestart();
            System.out.println("Activity---->onCreate");
        }
    
        /**
         * 当前activity被销毁时调用,通常在该方法中用来释放资源
         */
        @Override
        protected void onDestroy() {
            super.onDestroy();
            System.out.println("Activity---->onDestory");
        }
    
    }
    

      

    3.运行结果分析:

    (1)当启动actvity时,会调用onCreate()-->onStart()-->OnResume()

    (2)当按Home键或者锁屏键时,会调用OnPause()-->OnStop()

    (3)当按退出键时,会调用OnPause()-->OnStop()-->OnDestory()

    (4)当解开锁屏时,会调用OnRestart()-->OnStart()-->OnResume()

      

  • 相关阅读:
    Oracle SQL性能优化
    spring aop简单日志实例
    一个简单的Spring AOP例子
    jQuery的三种$()
    Mac 上的 outlook 一直让输入密码
    idea 中设置成公司规范的代码格式
    Java 中的锁——Lock接口
    TimeUnit枚举类
    Thread.join()的使用
    java线程的等待、通知机制【读书笔记】
  • 原文地址:https://www.cnblogs.com/langdon/p/6251987.html
Copyright © 2011-2022 走看看