×

深圳网站建设—APP开发—网站制作—小程序开发_博纳网络公司

0755 -
82538016
82560826
网站制作资讯

开发APP公司关于Activity四种模式概述

文章编辑:网站建设 文章来源:APP开发 浏览量:

  开发APP公司关于Activity概述,目前Activity共有4种启动模式,分别是“standard”“singleTop”“singleTask”和“singleInstance”,默认启动模式是“standard”。如表12-1所示,深圳APP开发公司总结这些模式可以分为两大类,“standard”和“singleTop”为一类,“singleTask”和“singleInstance”为另一类。

  使用“standard”或“singleTop”启动模式的Activity可多次实例化。实例可归属任何任务,并且可以位于Activity堆栈中的任何位置。使用“singleTask”和“singleInstance”启动模式的Activity位于Activity堆栈的根位置,且设备一次只能保留一个Activity实例,即只允许一个此类任务。
“standard”和“singleTop”模式只在一个方面有差异,即每次“standard”模式的Activity有新的Intent时,系统都会创建新的类实例来响应该Intent,每个实例处理单个Intent;同理,也可创建新的“singleTop”模式的Activity实例来处理新的Intent,不过,如果目标任务在其堆栈顶部已有一个Activity实例,那么该实例将接收新Intent(通过调用onNewIntent()),此时不会创建新实例。在其他情况下,如果“singleTop”的一个现有实例虽在目标任务内,但未处于堆栈顶部,或者虽然位于堆栈顶部,但不在目标任务中,则系统会创建一个新实例并将其推送到堆栈上。如果从当前Activity向上导航到当前堆栈上的某个Activity,该行为由父Activity的启动模式决定。如果父Activity有启动模式singleTop(或upIntent包含FLAG_ACTIVITY_CLEAR_TOP),则系统会将该父项置于堆栈顶部,并保留其状态。导航Intent由父Activity的onNewIntent()方法接收;如果父Activity有启动模式standard(并且upIntent不包含FLAG_ACTIVITY_CLEAR_TOP),则系统会将当前Activity及其父项同时弹出堆栈,并创建一个新的父Activity实例来接收导航Intent。“singleTask”和“singleInstance”模式同样只在一个方面有差异:“singleTask”Activity允许其他Activity成为其任务的组成部分。它始终位于其任务的根位置,但其他Activity(必然是“standard”和“singleTop”Activity)可以启动到该任务中。相反,“singleInstance”Activity则不允许其他Activity成为其任务的组成部分。它是任务中唯一的Activity。如果它启动另一个Activity,系统会将该Activity分配给其他任务,就好像Intent中包含FLAG_ACTIVITY_NEW_TASK一样。好了,APP开发公司本文关于“Activity四种模式概述”知识就分享到这里,谢谢关注,博纳网络编辑整理。
 
 

当前文章链接:/construction/appkaifa/2407.html
如果您觉得案例还不错请帮忙分享:

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。