简明现代魔法 -> Java编程语言 -> Android的Activity组件的生命周期

Android的Activity组件的生命周期

2011-05-28

在对Android进一步学习之前,要对Android应用构造进行进一步的分析。Android应用程序由4个模块构造而成:Activity、Intent、Content Provider、Service。本文将介绍第一个内容:Activity。

Activity是最基本的模块,一般称之为"活动",在应用程序中,一个Activity通常就是一个单独的屏幕。简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如监听系统事件,为用户显示指定的View,启动其他Activity等。所有应用的Activity都继承于android.app.Activity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能。

Activity 生命周期图如下:

在android中,Activity拥有四种基本状态:

1、Active/Runing一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。

2、Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。

3、Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped状态。

4、Killed Activity 被系统杀死回收或者没有被启动时处于 Killed状态。

当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。

如上所示,Android 程序员可以决定一个 Activity 的"生",但不能决定它的"死",也就时说程序员可以启动一个 Activity,但是却不能手动的"结束"一个 Activity。当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被"回收"。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。例如:从 Activity1 中启动了 Activity2,则当前处于栈顶端的是 Activity2,第二层是 Activity1,当我们调用 Activity2.finish()方法时,Activity Manager 重新激活 Activity1 并入栈,Activity2 从 Active 状态转换 Stoped 状态,Activity1. onActivityResult(int requestCode, int resultCode, Intent data)方法被执行,Activity2 返回的数据通过 data参数返回给 Activity1。

非用户行为把activity不可见的时候,例如电话忽然来了==

 		/**
         * 重新创建恢复缓存的数据
         */
        @Override
        protected void onRestoreInstanceState(Bundle savedInstanceState) {
                Log.i("onRestoreInstanceState",savedInstanceState.getString("name"));
                super.onRestoreInstanceState(savedInstanceState);
        }
        /**
         * 被摧毁前保存缓存的一些数据
         */
        @Override
        protected void onSaveInstanceState(Bundle outState) {
                outState.putString("name", "谭建平");
                super.onSaveInstanceState(outState);
        }
随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们