【Android开发API】应用的组成部分任务和返回堆.pdfVIP

【Android开发API】应用的组成部分任务和返回堆.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【Android开发API】应用的组成部分任务和返回堆.pdf

eoe 移动开发者社区 / 原文地址: /guide/topics/fundamentals/tasks-and-back-stack.htm l 一个应用程序通常包含多个Activity.每个Activity都必须设计成一种特定的操作, 用户 可以通过该操作去实现某项功能,并且操作其他的Activity.例如.一个电子邮件的应用程 序可能有一个Activity,用于展现出新的电子邮件列表,当用户选择了一个电子邮件,就打 开一个新的Activity以查看该电子邮件. 一个Activity可以启动设备上的另外的一个应用程序.例如,如果您的应用程序想要发送一 个电子邮件,您可以定义一个意图来执行一个“发送”行动,其中包括一些数据,如电子邮件 地址和消息.一个Activity在另一个应用程序,声明本身来处理这种意图然后打开.在这种 情况下.目的是为了发送电子邮件,所以电子邮件应用该创建Activity启动器(如果多个活 动支持相同的意图,那么系统让用户选择使用哪一个).当发送邮件时,你恢复了的Activity 和电子邮件的Activity好像是您的应用程序的一部分一样.即是这些Activity可能来自不 同的应用,android系统也会通过相同的任务栈来保存这种无缝的用户体验. 当用户进行某项操作时,任务栈就收集相互交互的Activity.Activity会被安排在堆栈中 (返回堆栈),堆栈中的Activity会按顺序来重新打开. 一个设备的主屏幕是大多数任务栈的起点.当用户触摸图标(或者在屏幕上的快捷方式)时, 该应用程序就会到达任务栈的最前面.如果该应用在任务栈中不存在(应用在近段时间内没 有使用过)就会在任务栈中创建一个新的任务,并将该应用作为主Activity放置在根任务 栈中. 当前Activity开始时,新的Activity推入堆栈的顶部和焦点.以前的Activity仍然在堆栈 中,但已停止.当Activity停止时,系统会保留其用户界面的当前状态.当用户按下返回按钮 时,当前Activity就会从堆栈的顶部(当前的Activity就会被销毁)和之前的一个Activity 就会恢复(恢复到之前的UI界面). Activity在栈中的顺序永远不会改变,只会压入和弹出 ——被当前Activity启动时压入栈顶,用户用返回键离开时弹出. 这样,back stack 以“后 进先出”的方式运行。图1 以时间线表的方式展示了多个Activity切换时对应当前时间点 的Back Task状态. eoe 移动开发者社区 / 图1.图1所表示的Task中的每个新Activity都会相应在Back Task中增加一项。当用户按 下返回键时,当前的Activity就会被销毁,而之前一个Activity就会被恢复. 如果用户不停地按下返回键的时候,那么栈中每个Activity都会依次弹出,并且显示前一 个Activity,直至用户回到Home屏幕(或者任一启动该Task的Activity,当所有Activit y都从栈中弹出后,Task就不再存在. Task是一个整体的单位,当用户启动一个新的Task或者通过Home按钮回到Home屏幕的时 候,这个TASK就转为“后台”.当Task处于后台时,里面所有的Activity都处于停止状态, 但是这个Task的BACK Task仍然完整保留——如图2所示,在其它Task获得焦点期间,这 个Task只是失去焦点而已.TASK可以回到前台,以便用户继续之前的操作.例如:当前Task(T ask A)的栈中共有3个Activity——下面有两个Activity.这时,用户按下Home键,然后从 Application launcher 中启动一个新的应用。当 Home 屏幕出现时,Task A 进入后台.当 新的应用启动时,系统会为它开启一个Task(Task B),其中放入新应用中的 activity。 用完这个应用后,用户再次返回 Home 屏幕,并选中那个启动 Task A 的应用.现在,Task A 进入前台——栈中的三个Activity仍然完好,位于最顶部的Activity 恢复运行.这时候, 用户仍然可以切回 Task B,通过回到 Home 屏幕并选择相应图标即可(或者触摸并按住Ho me键调出最近Task列表并选中).以下是 Android 多 task 的实例. 图2.两个Task :Task B 在前台与用户交互,而 Task A 在后台等待唤醒.

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档