Activity 生命周期图解

Android应用组件Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件。对于一个Android应用程序来说,可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动。当它不积极运行时,Activity可以被操作系统终止以节省内存。

Activity表现为4种状态,分别是活动状态、暂停状态、停止状态和非活动状态。

●  活动状态,Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互。
●  暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互;或者屏幕被锁定。
●  停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡。
●  非活动状态,不在以上3种状态中的Activity则处于非活动状态。

这四种状态是可以相互转换的,转换关系图如下图所示。

Android调用以下的事件回调方法通知Activity从某一状态转变到另一状态。

public class MyActivity extends Activity {
        protected void onCreate(Bundle savedInstanceState);
        protected void onStart();
        protected void onRestart();
        protected void onResume();
        protected void onPause();
        protected void onStop();
        protected void onDestroy();
    }

Activity生命周期的事件回调方法,如下表:

方法 是否可终止 说明
onCreate() Activity启动后第一个被调用的方法,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等
onStart() 当Activity显示在屏幕上时,该方法被调用
onRestart() 当Activity从停止状态进入活动状态前,调用该方法
onResume() 当Activity能够与用户交互,接收用户输入时,该方法被调用。此时的Activity位于Activity栈的栈顶
方法 是否可终止 说明
onPause() 当Activity进入暂停状态时,该方法被调用。一般用来保存持久的数据或释放占用的资源
onStop() 当Activity进入停止状态时,该方法被调用
onDestroy() 在Activity被终止前,即进入非活动状态前,该方法被调用
onSaveInstanceState() Android系统因资源不足终止Activity前调用该方法,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用
onRestoreInstanceState() 恢复onSaveInstanceState()保存的Activity状态信息,在onStart()和onResume ()之间被调用

Activity事件回调方法的调用顺序,如下图所示:

全生命周期:从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在onCreate()中创建线程,在onDestory()中停止线程。

可视生命周期:从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。

活动生命周期:从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有 Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个 Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。

参考资料:

http://fasight001.spaces.eepw.com.cn/articles/article/item/95848#

http://blog.csdn.net/hpoi/article/details/4629065

时间: 2024-11-03 21:57:38

Activity 生命周期图解的相关文章

Android Activity生命周期图解

Android 中 Activity生命周期 从网上摘的 事件回调方法  以下1-4 不可终止 . 1. onCreate()   :Activity 启动后第一个被调用的方法 ,常用来进行Activity的初始化,例如创建View.绑定数据或者恢复信息等 .. (? oncreate 可以恢复什么信息 ) 2. onStart() : 当Activity显示在屏幕上时,该方法被调用 3. onRestart() :当Activity从停止状态进入活动状态前,调用该方法 . 4.onResume

【Android】Activity生命周期研究

1. 为什么研究Activity什么周期 Activity是Android四大组件之一,是Android人必须要深刻理解的基础内容之一. 可以提高我们对相关问题的解决能力. 对一个问题如果不能深入理解,总觉得不踏实. 2. Activity生命周期详解 2.1 Activity生命周期图解 下图是Android开发官网的原图,清晰表达了Activity生命周期中每个方法所处位置及调用流程. 上图对Activity的执行流程表达很到位,但是对每个方法在执行时,我们的设备处于一种什么状态,其中注释表

Fragment和Activity生命周期以及横竖屏切换对生命周期的影响

Fragment生命周期图解,fragment和activity生命周期对比 生命周期变化 : 切换到该Fragment 05-21 14:26:35.095: D/FragmentDemo(7649): onAttach 05-21 14:26:35.095: D/FragmentDemo(7649): onCreate 05-21 14:26:35.095: D/FragmentDemo(7649): onCreateView 05-21 14:26:35.100: D/FragmentDe

android学习笔记 activity生命周期&任务栈&activity启动模式

activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序退出自动保存数据 ondestory oncreate 可视生命周期 onstart->onresume->onpause->onstop 使用场景:应用程序最小化 暂停的操作 onstop onstart 前台生命周期 onresume->onpause 界面用户仍然可见,但是失去焦

Activity生命周期详解

我们来看一下这一张经典的生命周期流程图: 相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程. 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态. 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行. 3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onRe

安卓activity生命周期

相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程. 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态. 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行. 3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态. 4.当前

Android——Activity生命周期(转)

Activity生命周期 子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓. 近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下. 熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方

Android 第六课——Activity生命周期

声明:本文转载自 http://blog.csdn.net/liuhe688/article/details/6733407 , 感觉读了这篇文章之后,对Activity又是一个更深层次的理解,所以果断手贱转载了!希望自己以后能多看看这篇文章,提升自己! 熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用.其实android中的Activity运行机制跟servlet有些相似之处

Android Activity 生命周期

生命周期流程图: 相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程. 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态. 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行. 3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运