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>
相关推荐
AskHarries6 分钟前
Spring Boot集成Akka Cluster快速入门Demo
java·spring boot·后端·akka
2402_857589366 分钟前
Java免税商品购物商城:Spring Boot实现详解
java·开发语言·spring boot
起司锅仔10 分钟前
ActivityManagerService Activity的启动流程(2)
android·安卓
Armyyyyy丶16 分钟前
spring-boot-maven-plugin插件打包和java -jar命令执行原理
java·maven·插件打包
峥嵘life19 分钟前
Android14 手机蓝牙配对后阻塞问题解决
android·智能手机
罗政35 分钟前
[附源码]SpringBoot+VUE+Java实现人脸识别系统
java·vue.js·spring boot
-XWB-41 分钟前
【Java】将一个List拆分使用线程池多线程运行
java·windows·list
陈大爷(有低保)1 小时前
题目:基于TCP/IP用DOM4j修改XML
java·服务器·tcp/ip
m0_738755921 小时前
.ideavimrc在idea打不开
java·vim·intellij-idea
超级小的大杯柠檬水1 小时前
IDEA中实现springboot热部署
java·spring boot·intellij-idea