Android Activity 生命周期详解

本文详细介绍了 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()  

示例代码:

[java]  view plain copy
  1. package com.liu.activity;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.util.Log;  
  6.   
  7. public class MyActivity extends Activity {  
  8.   private  static final String lifeTag = "Activity生命周期";  
  9.       
  10.     //当Activity第一次被创建时调用,我们可以在这进行初始化操作  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.         Log.d(lifeTag,"---->oncreate()被执行");  
  15.     }  
  16.     //onStart()方法在Activity开始被执行时调用,它紧随onCreate()方法之后调用  
  17.     protected void onStart() {  
  18.         super.onStart();  
  19.         Log.d(lifeTag,"---->onStart()被执行");  
  20.     }  
  21.       
  22.     //onResume()方法在Activity即将与用户交互时调用  
  23.     protected void onResume() {  
  24.         super.onResume();  
  25.         Log.d(lifeTag,"---->onResume()被执行");  
  26.     }  
  27.       
  28.     //当Activity从stopped状态启动时会调用onRestart(),后面总是调用onStart()方法  
  29.     protected void onRestart() {  
  30.         super.onRestart();  
  31.         Log.d(lifeTag,"---->onRestart()被执行");  
  32.     }  
  33.       
  34.     //在一个Activity启动另一个Activity时调用,它通常被用来持久化数据、停止动画或其他耗费资源的动作,  
  35.     //下一个Activity必须等待这个方法返回后在启动,所以在这里做过多的操作  
  36.     protected void onPause() {  
  37.         super.onPause();  
  38.         Log.d(lifeTag,"---->onPause()被执行");  
  39.     }  
  40.       
  41.     //onStop()方法在一个新的Activity启动、其他的Activity切换到前台、当天Activity被销毁时都会被调用  
  42.     protected void onStop() {  
  43.         super.onStop();  
  44.         Log.d(lifeTag,"---->onStop()被执行");  
  45.     }  
  46.   
  47.     //Activitybe被销毁时调用  
  48.     protected void onDestroy() {  
  49.         super.onDestroy();  
  50.         Log.d(lifeTag,"---->onDestroy()被执行");  
  51.     }  
  52.       
  53. }  
启动程序调用的方法如下:


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


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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值