实验2 Activity组件的生命周期

实验2 Activity组件的生命周期

ID:38779331

大小:301.00 KB

页数:10页

时间:2019-06-19

实验2 Activity组件的生命周期_第1页
实验2 Activity组件的生命周期_第2页
实验2 Activity组件的生命周期_第3页
实验2 Activity组件的生命周期_第4页
实验2 Activity组件的生命周期_第5页
资源描述:

《实验2 Activity组件的生命周期》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二Activity组件的生命周期一、实验目的1.了解Activity组件的生命周期;2.了解Activity组件的运行状态;3.掌握Activity事件回调函数的作用和调用关系。二、Activity相关知识 Activity是Android组件中最基本也是最为常见用的四大组件之一(Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器)。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件

2、。在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在android中,Activity拥有四种基本状态:1、Active/Runing一个新Activity启动入栈后,它显示在屏幕最前端,处理是处于栈的最顶端(Activity栈顶),此时它处于可见并可和用户交互的激活状态,叫做活动状态或者运行状态(activeorrunning)。2、Paused当Activity失去焦点,被一个新的非全屏的Activity或者一个

3、透明的Activity被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接,Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。所以它仍然可见,但已经失去了焦点故不可与用户进行交互。3、Stoped如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被强行终止掉。4、

4、Killed如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。状态转换当一个Activity实例被创建、销毁或者启动另外一个Activity时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。图2.1说明了Activity在不同状态间转换的时机和条件:9图2.1.Activity的状态转换如图2.1所示,Andr

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

6、则当前处于栈顶端的是Activity2,第二层是Activity1,当我们调用Activity2.finish()方法时,ActivityManager重新激活Activity1并入栈,Activity2从Active状态转换Stoped状态,Activity1.onActivityResult(intrequestCode,intresultCode,Intentdata)方法被执行,Activity2返回的数据通过data参数返回给Activity1。Activity栈Android是通过一种Activity栈的方式来管理Activity

7、的,一个Activity的实例的状态决定它在栈中的位置。处于前台的Activity总是在栈的顶端,当前台的Activity因为异常或其它原因被销毁时,处于栈第二层的Activity将被激活,上浮到栈顶。当新的Activity启动入栈时,原Activity会被压入到栈的第二层。一个Activity在栈中的位置变化反映了它在不同状态间的转换。Activity的状态与它在栈中的位置关系如图2.2所示:图2.2.Activity的状态与它在栈中的位置关系如图2.2所示,除了最顶层即处在Active状态的Activity外,其它的Activity都有可

8、能在系统内存不足时被回收,一个Activity的实例越是处在栈的底层,它被系统回收的可能性越大。系统负责管理栈中Activity的实例,它根据Activity所处的

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

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

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