Android官方文档之Activity和Task(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:44 点击:

用户决定开始另一个任务 - 用户按了HOME键,然后开始了另一个Application
当然,规则总是有例外。除了上面提到了两种方法,确实存在第三种方法开始一个新任务,即,在代码中startActivity的时候,定义它要开始一个新Task。 地图和浏览器两个应用就是这么做的。 例如,在电邮中点击一个地址,会在新Task调出地图Activity,在电邮中点击一个链接,会在新的Task中调出浏览器。 在这种情况下,BACK键会回到上一个Activity(另一个Task中的电邮Activity),因为它不是从主屏启动的。
Activity和Task的一个例子
接下来的例子,说明了Application、Activity、Activity栈、BACK键、Task和Intent的基本原理。 它展示了系统响应用户操作的方式,包括启动Activity和在Task之间切换。 你可以在你的Android手机上,按照下面指示的那样,执行这些例子。
从主屏启动一个Activity
主屏是绝大部分Application启动的地方。(某些应用只能从其它应用进入。) 当用户点击应用管理器的一个图标(或者主屏上的一个快捷方式),这个应用的主Activity会被启动到前台,并拥有用户的焦点。 像下面图标展示的那样,用户进入主屏并点击电邮图标的行为,启动了电邮Application的消息列表Activity。 主屏Activity被置到后台,stop。当用户重新进入主屏时,restart。

按着Activity导航,通过BACK键和HOME键离开Activity
一个Activity是否保持它的状态,取决于用户离开它的方式 - 是通过HOME键还是BACK键。
默认情况下,按BACK键会finish(destroy)当前Activity,然后显示上一个Activity给用户。 在下面的图中,用户通过在主屏点击电邮图标启动了显示出电邮消息列表的电邮应用。 用户滚动列表(改变了初始状态)。 点击BACK键销毁了消息列表Activity,然后回到了上一个Activity,即是主屏。 用户重新启动电邮应用后,电邮应用展示出来的列表,是重新初始化,没有经过滚动的。

在上面的例子中,按BACK键会回到主屏,是因为主屏是用户能看到的最后一个Activity。 要是用户是从其它Activity进到消息列表Activity的,那么按BACK键会回到来的地方。
作为对比,下一个图表展示了用户用HOME键而不是BACK键来离开消息列表Activity的情况 - 消息列表Activity会stop然后移到后台,不会被销毁。从快捷方式重新启动电邮Application,会把后台的这个应用 置到前台(从stop变成running)。滚动状态会跟用户离开的时候一样。

有例外情况。 某些后台Activity回到前台后,会进到它的初始界面(而不是离开时的状态)。 联系人应用和看图应用就是这种Activity。 当用户从主屏进入联系人应用,然后选择一个联系人看详细资料。(然后HOME键)。 如果用户再次从主屏进入,就会回到联系人列表而不是离开时的详细资料。 这样设计联系人应用,是因为联系人列表是整个应用4个Tab的主进入点。
另外,不是所有的Activity都会在按BACK的时候被销毁。 当用户使用音乐应用播放音乐,然后按BACK键时,应用重写了后退的行为,Activity没被销毁,而仅仅是变得不可见。(所以保存了状态)。 音乐继续播放,并出现一个Notification,让用户可以回到音乐Activity去控制音乐的播放。 注意,你可以写不可见就销毁的Activity,也可以写像音乐Activity一样仅仅会切到后台的Activity。
重用一个Activity
假设Activity A启动了另一个Application中的Activity B,就说Activity B被重用了。 在Activity A广播查找能力然后B有这个能力时,这种情况就会发生。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1