activity组件

activity组件

ID:39464263

大小:155.50 KB

页数:13页

时间:2019-07-03

activity组件_第1页
activity组件_第2页
activity组件_第3页
activity组件_第4页
activity组件_第5页
资源描述:

《activity组件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Activity的生命周期和J2ME的MIDlet一样,在android中,Activity的生命周期交给系统统一管理。与MIDlet不同的是安装在android中的所有的Activity都是平等的。Activity的状态及状态间的转换在android中,Activity拥有四种基本状态:1.Active/Runing一个新Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。2.Paused当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以

2、它仍然可见,但它已经失去了焦点故不可与用户交互。3.Stoped当Activity被另外一个Activity覆盖、失去焦点并不可见时处于Stoped状态。4.KilledActivity被系统杀死回收或者没有被启动时处于Killed状态。当一个Activity实例被创建、销毁或者启动另外一个Activity时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。下图说明了Activity在不同状态间转换的时机和条件:图1.Activity的状态转换如上所示,Android程序员可以决定一个Activity的“生”,但不能决定它的“死”,也就时说程序员可以启动一个Ac

3、tivity,但是却不能手动的“结束”一个Activity。当你调用Activity.finish()方法时,结果和用户按下BACK键一样:告诉ActivityManager该Activity实例完成了相应的工作,可以被“回收”。随后ActivityManager激活处于栈第二层的Activity并重新入栈,同时原Activity被压入到栈的第二层,从Active状态转到Paused状态。例如:从Activity1中启动了Activity2,则当前处于栈顶端的是Activity2,第二层是Activity1,当我们调用Activity2.finish()方法时,Activity

4、Manager重新激活Activity1并入栈,Activity2从Active状态转换Stoped状态,Activity1.onActivityResult(intrequestCode,intresultCode,Intentdata)方法被执行,Activity2返回的数据通过data参数返回给Activity1。Activity栈Android是通过一种Activity栈的方式来管理Activity的,一个Activity的实例的状态决定它在栈中的位置。处于前台的Activity总是在栈的顶端,当前台的Activity因为异常或其它原因被销毁时,处于栈第二层的Activ

5、ity将被激活,上浮到栈顶。当新的Activity启动入栈时,原Activity会被压入到栈的第二层。一个Activity在栈中的位置变化反映了它在不同状态间的转换。Activity的状态与它在栈中的位置关系如下图所示:图2.Activity的状态与它在栈中的位置关系如上所示,除了最顶层即处在Active状态的Activity外,其它的Activity都有可能在系统内存不足时被回收,一个Activity的实例越是处在栈的底层,它被系统回收的可能性越大。系统负责管理栈中Activity的实例,它根据Activity所处的状态来改变其在栈中的位置。Activity生命周期在andr

6、oid.app.Activity类中,Android定义了一系列与生命周期相关的方法,在我们自己的Activity中,只是根据需要复写需要的方法,Java的多态性会保证我们自己的方法被虚拟机调用,这一点与J2ME中的MIDlet类似。publicclassOurActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState);protectedvoidonStart();protectedvoidonResume();protectedvoidonPause();protectedvoidonStop

7、();protectedvoidonDestroy();} 这些方法的说明如下:1. a. i.protectedvoidonCreate(BundlesavedInstanceState)一个Activity的实例被启动时调用的第一个方法。一般情况下,我们都覆盖该方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。大多数情况下,我们都要在这里从xml中加载设计好的用户界面。例如:setContentView(R.layout.main); 当然,也可从savedIns

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。