• Android Activity 生命周期详解


    学习android开发这么久对于activity的生命周期还没有仔细思考过,所以,我大致的把这些东西整理一下,希望通过这使自己理解的更透彻点吧!

    首先看一下Activity生命周期图和它的的四个阶段 


    它的的四个阶段

    1. 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。
    2. Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()方法。
    3. Activity重新获得焦点:如果Activity重新获得焦点,会依次执行 3个生命周期方法:onRestart()、onStart()和onResume()。
    4. 关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法:onPause()、onStop()和onDestroy()。

    现在通过一个例子来了解它的生命周方法在四个阶段的用法:

     七个生命周期方法如下,它们的作用见下面示例方法注释中

       protected void onCreate(Bundle savedInstanceState)

       protected void onStart()

       protected void onResume()

       protected void onPause()

       protected void onStop()

       protected void onRestart()

       protected void onDestroy()  

    示例代码:

    package com.liu.activity;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    
    public class MyActivity extends Activity {
      private  static final String lifeTag = "Activity生命周期";
        
        //当Activity第一次被创建时调用,我们可以在这进行初始化操作
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Log.d(lifeTag,"---->oncreate()被执行");
        }
        //onStart()方法在Activity开始被执行时调用,它紧随onCreate()方法之后调用
        protected void onStart() {
            super.onStart();
            Log.d(lifeTag,"---->onStart()被执行");
        }
        
        //onResume()方法在Activity即将与用户交互时调用
        protected void onResume() {
            super.onResume();
            Log.d(lifeTag,"---->onResume()被执行");
        }
        
        //当Activity从stopped状态启动时会调用onRestart(),后面总是调用onStart()方法
        protected void onRestart() {
            super.onRestart();
            Log.d(lifeTag,"---->onRestart()被执行");
        }
        
        //在一个Activity启动另一个Activity时调用,它通常被用来持久化数据、停止动画或其他耗费资源的动作,
        //下一个Activity必须等待这个方法返回后在启动,所以在这里做过多的操作
        protected void onPause() {
            super.onPause();
            Log.d(lifeTag,"---->onPause()被执行");
        }
        
        //onStop()方法在一个新的Activity启动、其他的Activity切换到前台、当天Activity被销毁时都会被调用
        protected void onStop() {
            super.onStop();
            Log.d(lifeTag,"---->onStop()被执行");
        }
    
        //Activitybe被销毁时调用
        protected void onDestroy() {
            super.onDestroy();
            Log.d(lifeTag,"---->onDestroy()被执行");
        }
        
    }

    启动程序调用的方法如下:


    当按下拨号键使activity失去焦点调用的方法如下:


    当按下返回键使Activity获得焦调用的方法如下,:


    关闭Avtivity时调用的方法如下:

  • 相关阅读:
    [文摘20070930]激励员工20种非经济手段
    [文摘20071010]绿领
    新增及删除Grid行
    SqlAnyWhere相关示例SQL语句
    [文摘20071008]全国软考相关计算机技术与软件专业资格(水平)考试
    愉悦的时候
    [文摘20070924]导致事业不成功的心理致命伤
    快乐的生活
    给网络创业者的十大建议
    [转]winForm:DataGridView的一些技巧
  • 原文地址:https://www.cnblogs.com/vip-ygh/p/3955361.html
Copyright © 2020-2023  润新知