Android开发之旅(5):活动与任务

Android开发之旅(5):活动与任务

ID:37919323

大小:60.50 KB

页数:5页

时间:2019-06-02

Android开发之旅(5):活动与任务_第1页
Android开发之旅(5):活动与任务_第2页
Android开发之旅(5):活动与任务_第3页
Android开发之旅(5):活动与任务_第4页
Android开发之旅(5):活动与任务_第5页
资源描述:

《Android开发之旅(5):活动与任务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、引言关于Android应用程序原理及术语,前面两篇:·Android开发之旅:应用程序基础及组件·Android开发之旅:应用程序基础及组件(续)介绍了Android应用程序的进程运行方式:每一个应用程序运行在它自己的Linux进程中。当应用程序中的任何代码需要执行时,Android将启动进程;当它不在需要且系统资源被其他应用程序请求时,Android将关闭进程。而且我们还知道了Android应用程序不像别的应用程序那样(有Main函数入口点),它没有单一的程序入口点,但是它必须要有四个组件中的一个或几个:

2、活动(Activities)、服务(Services)、广播接收者(Broadcastreceivers)、内容提供者(Contentproviders)。且分别介绍它们的作用,及如何激活和关闭它们、如何在清单文件(AndroidManifest.xml)中声明它们及Intent过滤器。在简单回顾之后,本篇还是继续介绍Android应用程序原理及术语——活动与任务(ActivitiesandTasks)。·1、活动与任务概述·2、亲和度和新任务(Affinitiesandnewtasks)·3、启动模式(L

3、aunchmodes)·4、清除栈(Clearingthestack)·5、启动任务(Startingtasks)1、活动与任务概述如前所述,一个活动(activity)能启动另一个活动,包括定义在别的应用程序中的活动。再次举例说明,假设你想让用户显示某地的街道地图。而且已经有了一个活动能做这个事情(假设这个活动叫做地图查看器),因此你的活动要做的就是将请求信息放进一个Intent对象,然后将它传给startActivity()。地图查看器就启动并显示出地图。当用户点击返回按钮之后,你的活动就会重新出现在屏

4、幕上。对用户来说,这个地图查看器就好像是你的应用程序的活动一样,虽然它定义在其他的应用程序中且运行在那个应用程序的进程中。Android将这些活动保持在同一个任务(task)中以维持用户的体验。简单地讲,任务是用户体验上的一个“应用程序”,是排成堆栈的一组相关活动。栈底的活动(根活动)是起始活动——一般来讲,它是用户在应用程序启动器(也称应用程序列表,下同)中选择的一个活动。栈顶的活动是正在运行的活动——它关注用户的行为(操作)。当一个活动启动另一个,新的活动被压入栈顶,变为正在运行的活动。前面那个活动保存

5、在栈中。当用户点击返回按钮时,当前活动从栈顶中弹出,且前面那个活动恢复成为正在运行的活动。(关于栈的先进后出特性不要我在这里讲吧!)栈中包含对象,因此如果一个活动(再次说明:活动是Activity的子类)启动了多个实例——例如多个地图查看器,则栈对每个实例有一个独立的入口。(可以这样理解:假设有四个活动以这样的顺序排在栈中——A-B-C-D,现在又有一个C的实例,则栈变成A-B-C-D-C,这两个C的实例是独立的。)栈中的活动从不会被重新排列,只会被压入、弹出。这点很好理解,因为活动的调用顺序是固定的。任务

6、是一栈的活动,而不是清单文件中声明的某个类或元素,因此无法独立于它的活动为任务赋值。整个任务的值是在栈底活动(根活动)设置的。例如,下节将讨论的“任务亲和度”,亲和度信息就是从任务的根活动中获取的。一个任务的所有活动作为一个整体运行。整个任务(整个活动栈)可置于前台或发送到后台。例如,假设当前任务有四个活动在栈中——三个活动在当前活动下面。用户按下HOME键,切换到程序启动器,并选择一个新的应用程序(实际上是一个新的任务)。当前任务进入后台,新任务的根活动将显示。接着,过了一会,用户回到主屏幕并再次选择之前

7、的应用程序(之前的任务)。那个任务栈中的所有四个活动都变为前台运行。当用户按下返回键时,不是离开当前任务回到之前任务的根活动。相反,栈顶的活动被移除且栈中的下一个活动将显示。上面所描述的是活动和任务的默认行为,但是有方法来改变所有这些行为。活动与任务之间的联系及任务中活动的行为,是由启动活动的Intent对象的标志(flags)和清单文件中活动元素的属性共同决定的。在这方面,主要的Intent标志有:·FLAG_ACTIVITY_NEW_TASK·FLAG_ACTIVITY_CLEAR_

8、TOP·FLAG_ACTIVITY_RESET_TASK_IF_NEEDED·FLAG_ACTIVITY_SINGLE_TOP主要的属性有:·taskAffinity·launchMode·allowTaskReparenting·clearTaskOnLaunch·alwaysRetainTaskState·finishOnTaskLaunch接下来的小节将讨论这些标志和属性的作用,他们怎么

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

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

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