文档章节

Activity的启动模式

 梦想家Peng
发布于 2016/03/01 14:39
字数 545
阅读 14
收藏 1

任务栈(Task Stack)

-------------------------------

任务栈记录了当前应用程序里打开的若干个Activity,当按下Back键时,将根据任务栈里的Activity的顺序来决定将要被显示出来的Activity。

当新的Activity被激活时,伴随着“压栈”操作,刚原有任务栈里所有Activity都被“压”下去,同时,新的Activity将位于栈顶,而栈顶的Activity将是前台显示的Activity,即处于运行态。

当栈顶的Activity“出栈”时,该Activity将走向终止态,而栈内其它Activity将整体向上“浮出”,原来处于第2位的Activity将获得栈顶位置,则位于前台,处于运行态。


Activity的启动模式

-------------------------------

Activity的启动模式决定了Activity被激活时,如何添加到任务栈。

通过AndroidManifest.xml中的<Activity>节点的launchMode属性可以配置每个Activity的启动模式。

Activity的启动模式有:

1) standard:标准模式(默认)

  stardard模式的Activity可以被反复激活,且每次激活的都是新的Activity对象

2) singleTop:栈顶唯一

  如果Activity已经位于栈顶,再次激活时,不会创建新的Activity对象,反之,如果被激活的Activity没有处于栈顶,则还是会创建新的Activity对象

3) singleTask:栈内唯一

  被激活的Activity一定位于栈顶,且在栈内只有1个,即如果当前任务栈没有该Activity,则直接创建并且压栈,当被激活的Activity自然处于栈顶位置,显示在前台,如果当前任务栈中已经存在该Activity,则在栈中该Activity之上的所有Activity被强制出栈(被销毁),而被激活的Activity自然弹栈,获得栈顶位置,显示在前台。

4) singleInstance:单例

  被激活的Activity在任务栈绝对有且仅有1个,处于该模式下的Activity将独立存在于一个专属的任务栈中。

注意:Activity的启动模式(launchMode)被配置为singleTask或singleInstance时,Activity归属于哪个任务栈,取决于Activity的taskAffinity属性,该属性是通过AndroidManifest.xml进行配置的,具体可以参见TMOOC上的视频教程。


© 著作权归作者所有

共有 人打赏支持
上一篇: Intent(意图)
粉丝 0
博文 34
码字总数 15605
作品 0
深圳
私信 提问

暂无文章

正则表达式匹配不包含

^((?!xxx).)*$

安小乐
7分钟前
1
0
python Windows tkinter应用开发3 列出目录的所有文件

在本章中,我们将编写程序来执行此操作。 1)选择文件夹。 2)在UI的标签部分打印该文件夹中的所有文件名(带文件扩展名)。 首先,修改selectFile函数以打开文件夹。主文件如下: from tki...

python测试开发人工智能安全
8分钟前
1
0
使用Laya引擎开发微信小游戏(上)

  使用一个简单的游戏开发示例,由浅入深,介绍了如何用Laya引擎开发微信小游戏。      img      作者:马晓东,腾讯前端高级工程师。      微信小游戏的推出也快一年时间了,...

SEOwhywhy
13分钟前
1
0
react程序开发问题记录

1、webpack.config.dev.js文件的publicpath配置

teamlog
26分钟前
2
0
javascript 值转换为布尔值

任意javascript 的值都可以转换为布尔值。 特别是在 if() 等判断中使用的时候: 下面这些值会被转换为 false undefined , null , 0 , -0 , NaN , "" 空字符串 来自 JavaScript 权威指南 书籍...

之渊
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部