android开发与架构设计解析.pptVIP

  1. 1、本文档共92页,可阅读全部内容。
  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文档。上传文档
查看更多
是否允许实例所在任务有其他活动。singleInstance活动所在任务只有它一个活动。如果他启动别的活动,那些活动将启动到不同的任务中,无论它的模式如何——就好像Intent对象包含FLAG_ACTIVITY_NEW_TASK标志。在所有其他方面,singleInstance模式等同于singleTask模式。 其它三种模式允许多个活动属于一个任务。singleTask活动总是任务的根活动,但是它能启动其他活动到它的任务。standard或singleTop 活动的实例可以出现的栈中的任何位置。 响应一个意图时是否需要生成类的新实例。对于默认的“standard”模式,创建新的实例去响应每一个新的意图。每个实例仅处理一个意图。对于“singleTop ”模式,一个类已存在的实例可以重新用了处理新的意图,如果它位于目标任务的活动栈的栈顶。如果不是在栈顶,就不可以重用。相反,将创建一个新的实例并压入栈顶。 例如,一个任务的活动栈由根活动A、B、C和D组成,顺序为A-B-C-D。当一个意图到达请求类型D时,如果D是默认的“standard”模式,将产生D类的新实例且栈变为A-B-C-D-D。然而,如果D的启动模式是“singleTop ”,已存在的D实例将去处理新的意图(因为它在栈顶)且栈仍然是A-B-C-D。 如果,另一方面,到达的意图是请求类型B时,一个B的新实例将启动而不管B的模式是“standard”还是“singleTop ”(因为B不是在栈顶),因此栈的结构为A-B-C-D-B。 如前所述,“singleTask”和“singleInstance”活动仅可以被实例化一次,因此他们的实例将处理所有的新意图。一个“singleInstance”活动总是在栈顶(因为仅有一个活动在任务中),因此它总是在可以处理意图的位置。然而,一个“singleTask”活动在栈中可能有或可能没有其他活动在它上面。如果有,即它不在处理意图的位置,意图会被丢弃(即使意图被丢弃了,它的到来使任务转到并保持在前台运行) 当一个已存在的活动被请求处理一个新的意图,Intent对象将通过onNewIntent()调用传到活动。(产生启动活动的意图对象可以由getIntent()获取。) 注意到当一个活动的新实例被创建去处理新意图时,用户总是可以按返回键返回到之前的状态(之前的活动)。但是当一个已存在的活动实例去处理新意图是,用户不可以按返回键返回到意图到达之前的状态。 4、清除栈(Clearing the stack) 如果用户离开一个任务很长时间,系统将会清除根活动之外的活动。当用户再次返回到这个任务时,像用户离开时一样,仅显示初始的活动。这个想法是,一段时间后,用户可能已经放弃之前做的东西,及返回任务做新的事情。这是默认情况,有些活动属性可以用来控制和改变这个行为。 alwaysRetainTaskState属性 如果在任务的根活动中这个属性被设置为true,刚才描述的默认行为将不会发生。任务将保留所有的活动在它的栈中,甚至是离开很长一段时间。 clearTaskOnLaunch属性 如果在任务的根活动中这个属性被设置为true,只有用户离开就清除根活动之外的活动。换句话说,它与alwaysRetainTaskState截然相反。用户总是返回到任务的初始状态,甚至是只离开一会。 finishOnTaskLaunch属性 这个属性类似于clearTaskOnLaunch,但是它作用于单个活动,而不是整个任务。而且它能移除任何活动,包括根活动。当它被设置为“true”,任务本次会话的活动的部分还存在,如果用户离开并返回到任务时,它将不再存在。 有其他的方法强制从栈中移除活动。如果Intent对象包含FLAG_ACTIVITY_CLEAR_TOP标志,目标任务已经有一个指定类型的活动实例,栈中该实例上面的其它活动将被移除而使它置于栈顶响应意图。如果指定的活动的启动类型是standard,它自己也将被移除出栈,且一个新的实例将被启动去处理到来的意图。这是因为当模式是standard时,总是创建一个新的实例去处理新的意图。 FLAG_ACTIVITY_CLEAR_TOP标志经常与FLAG_ACTIVITY_NEW_TASK一起使用。当一起使用时,这些标志的方式是定位到另一个任务中的已存在的活动并把它放到可以处理意图的位置。 5、启动任务(Starting tasks) 通过给定活动一个意图过滤器ent.action.MAIN作为指定行为(action)和ent.category.LAUNCHER指定种类(category),活动就被设置为任务的入口点了。上篇应用程序基础及组件(续)第四节Intent过滤器中我们举了这样

文档评论(0)

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

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

1亿VIP精品文档

相关文档