Android新手入门教程(一):理解Activity生命周期

转载 2012年03月24日 12:39:52

原文地址 :

http://blog.csdn.net/horsttnann/article/details/7385903

Activity这个类,定义了一些回调函数来控制它的生命周期。

onCreate()  ——  当Activity第一次创建的时候被调用。
onStart()  ——  当Activity对用户可见的时候被调用。
onResume()  ——  当Activity开始和用户交互的时候被调用。

onPause()  ——  正在运行的Activity马上要被暂停的时候被调用,此时,在这之前的Activity被重新获取。
onStop()  ——  当Activity不在对用户可见的时候被调用。
 默认地,被创建的Activity中都包含一个onCreate()方法,通过这个方法,可以创建显示给用户的UI组件。

 从“被创建”到“被销毁”的生命周期图示:


想要理解Activity生命周期的最好办法就是创建一个工程,并实现所有的回调函数,然后让Activity与用户交互。


    1.创建一个名为Activity101的工程。
    2.Activity101Activity.java中的代码。

package net.horsttnann.Activity101;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.util.Log;  
  
public class Activity101Activity extends Activity {  
    String tag = "Lifecycle";  
  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        Log.d(tag, "In the onCreate() event");  
    }  
  
    public void onStart() {  
        super.onStart();  
        Log.d(tag, "In the onStart() event");  
    }  
  
    public void onRestart() {  
        super.onRestart();  
        Log.d(tag, "In the onRestart() event");  
    }  
  
    public void onResume() {  
        super.onResume();  
        Log.d(tag, "In the onResume() event");  
    }  
  
    public void onPause() {  
        super.onPause();  
        Log.d(tag, "In the onPause() event");  
    }  
  
    public void onStop() {  
        super.onStop();  
        Log.d(tag, "In the onStop() event");  
    }  
  
    public void onDestroy() {  
        super.onDestroy();  
        Log.d(tag, "In the onDestroy() event");  
    }  
}  



3.按F11在模拟器上调试。

4.当这个activity第一次被加载:

03-23 01:54:32.602: D/Lifecycle(644): In the onCreate() event  
03-23 01:54:32.602: D/Lifecycle(644): In the onStart() event  
03-23 01:54:32.602: D/Lifecycle(644): In the onResume() event  


 5.按“返回键”,程序退出:

03-23 01:58:28.307: D/Lifecycle(644): In the onPause() event  
03-23 01:58:28.762: D/Lifecycle(644): In the onStop() event  
03-23 01:58:28.837: D/Lifecycle(644): In the onDestroy() event  


6.重新进入程序:

03-23 01:59:38.282: D/Lifecycle(644): In the onCreate() event  
03-23 01:59:38.292: D/Lifecycle(644): In the onStart() event  
03-23 01:59:38.302: D/Lifecycle(644): In the onResume() event  


7.按“拨号键”进入拨号界面,activity被转入后台运行:

03-23 02:00:23.252: D/Lifecycle(644): In the onPause() event  
03-23 02:00:24.522: D/Lifecycle(644): In the onStop() event  


 8.注意,此时onDestroy()方法并没有被触发,说明这个activity还在内存中。按“返回键”,退出拨号界面,这个Activity又重新可见了。观察LogCat窗口中的输出:

03-23 02:03:25.262: D/Lifecycle(644): In the onRestart() event  
03-23 02:03:25.262: D/Lifecycle(644): In the onStart() event  
03-23 02:03:25.262: D/Lifecycle(644): In the onResume() event


 onRestart()方法被触发了,接下来是onStart()和onResume()。

    可以从这个简单的例子中看到,当点击“返回键”的时候,activity被销毁了,与此同时,activity当前的状态也将消失。有一点需要特别注意,onPause()方法仅在两种情况下被调用:一个是在Activity被转入后台运行的时候,一个是用户按“返回键”将activity销毁的时候。

    当一个anctivity被启动之后,onStart()和onResume()方法总是要被调用的,无论这个activity是从后台重新获取的,还是首次被创建的。当一个anctivity第一次被创建的时候,onCreate()方法总是被调用。

    从上面的例子,我们可以得出结论:

使用onCreate()方法去创建和初始化将要使用的组件。
使用onResume()方法去开启服务,执行那些需要在“activity前台”运行的代码。
使用onPause()方法去停止服务,执行那些需要在“activity后台”运行的代码。
使用onDestroy()方法去释放资源。

 

android 组件Activity生命周期

  • 2014年04月03日 18:01
  • 87KB
  • 下载

Android之Activity生命周期详细介绍,新手必必必看

Android之Activity生命周期史无前例的详细介绍,新手必必必看           Android的Activity生命周期是一个非常重要的知识点,但是由于Activity的状态众多,而...

Android activity生命周期示例

  • 2015年09月29日 17:28
  • 5.84MB
  • 下载

测试Android Activity生命周期Demo

  • 2014年11月08日 01:36
  • 923KB
  • 下载

Android开发入门之Activity生命周期

Activity生命周期: 第一步:新建一个Android工程命名为LifeCycle目录结构如下图: 第二步:修改activity_main.xml布局文件代码如下: ...

Android中Activity生命周期

  • 2013年11月12日 19:53
  • 74KB
  • 下载

Android入门:搭建环境、工程目录剖析、Activity生命周期

Android是在2007年11月5日google公司推出的基于Linux的操作系统; 本意:机器人; AndroidSDK:开发工具包,类似于JDK,用Java语言编写程序; AndroidNDK:...

Android之Activity生命周期

  • 2013年06月04日 14:43
  • 1.15MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android新手入门教程(一):理解Activity生命周期
举报原因:
原因补充:

(最多只允许输入30个字)