Android任务栈和启动模式

Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出,它主要有两个基本操作,分别是压栈和出栈。通常Andaid应用程序都有一个任务栈,每打开一个Activity时,该Activity就会被压入任务栈。每销毁一个Activity时,该Activity就会被弹出任务栈。用户操作的Accivity永远都是栈顶的Activisty。

无论开启多少个Activity,最后开启的Activity的实例都会被压入栈的顶端,而之前开启的Activity仍然保存在栈中,但活动已经停止,系统会保存Activety被停止时的状态。当两次回到被停止的Activity时,界面为被保存停止时的状态。

Activity启动模式有4种,分别是standand(标准),singleTop(仅一个,顶部),singleTask(仅一个,栈) 和 singleInstance(仅一个,实例)

1.standard模式

Activity的默认启动模式。每启动一个Activity就在栈顶创建一个新实例。

2.singleTop模式

该模式会判断要启动的Activity实例是否在栈顶,如果位于栈顶则直接复用,否则创建新实例。

3.singleTask模式

如果想要某个Activity在整个应用程序中只有一个实例,则需使用singleTask模式该模式会判断栈中是否存在要启动的Activity,如果存在则把上方所有实例弹出并直接使用该实例,否则创建。

4.singleInstance模式

在所有中寻找要启动的Activity,如果存在则将该栈转移到前台直接使用,如果不存在先创建一个新的任务栈并将Activity实例压入 。该Activity在系统中只有一个。

Activity启动模式在AndroidManifest.xml(清单文件)的对应的**<activity中的** andrid:launchMode属性设置

html 复制代码
<activity
    android:name=".MainActivity"
    android:launchMode="singleTask">
<!-- launchMode属性用于设置启动模式 !-->

</activity>
相关推荐
Mr-Wanter1 小时前
Spring Boot 接口签名实践
java·spring boot
@zulnger1 小时前
安卓进行稳定性测试
android·appium·1024程序员节
denlaku1 小时前
JDK 22 新特性详解
java·开发语言
余槐i1 小时前
开虚拟线程后接口反而更慢:JDK 21 synchronized 锁住载体线程的排查
java·spring boot·redis·mysql·性能优化
不吃凉粉2 小时前
android 副屏连接
android
Sirens.2 小时前
网络通信基础:IP、端口、协议分层与数据封装
java·网络·网络协议·tcp/ip·java-ee·1024程序员节
CRMEB系统商城2 小时前
服装连锁的导购分销与企微私域
java·大数据·开发语言·人工智能·小程序·php·1024程序员节
若亦_2 小时前
Java泛型入门:类型安全与上界约束
java·1024程序员节
编程的一拳超人2 小时前
【元宝搜索开发者征文大赛】四语实战:Java/Python/Go/Node.js 构建 AI 搜索应用全攻略
java·python·golang·node.js·agent
wuminyu2 小时前
JVM规范学习总结-Java源码经过javac编译后产物
java·linux·c语言·jvm·c++