Android活动启动模式简介

本文详细介绍了Android中四种活动启动模式:standard、singleTop、singleTask及singleInstance的特点与应用场景。standard模式为默认模式,每次启动均创建新实例;singleTop模式只在活动位于栈顶时复用现有实例;singleTask模式确保同一活动中仅存在一个实例,位于栈顶;singleInstance模式则为活动提供独立的任务栈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android活动的启动模式

Android一共有四种启动活动的方式,分别是standard、singlTop、singleTask、singleInstance,我们可以通过在主配置文件,也就是AndroidManifest.xml中在activity标签中指定android:launchMode属性来指定自己想要的启动模式

1.standard(标准模式)

这是默认的启动模式,也就是说即使你不对launchMode指定任何属性,系统会默认选择该属性来执行。我们知道android是通过返回栈来管理活动的,在standard模式下,每当我们启动一个新的活动后,他就会进入返回栈的栈顶位置,该模式下启动的活动,系统不会管这个活动在栈中是否存在,每次都会重新创建一个新活动的实例对象。
standard模式原理图

2.singleTop(栈顶模式)

当你指定launchMode为singleTop时,在启动新的活动的时候,系统会在栈中进行检查,如果发现该活动已经处于返回栈的栈顶位置,那么将不在创建新的活动实例,而是直接返回改活动实例。
singleTop原理示意图

3.singleTask(单栈模式)

当指定活动启动模式launchMode指定为singleTask时,每次启动新的活动的时候,系统首先回去检查栈中是否存在改活动的实例对象,如果有,不论改活动的实例对象处于栈中的任何位置,都会将它提到栈顶,并且将在栈中位置处于他上方的的所有活动对象出栈。如果没有发现该活动的实例对象,系统就会创建一个新的实例对象。
singleTask原理示意图

4.singleInstance

这种模式是最为特殊的一种模式,它特殊在哪里呢?它就特殊在 当你指定活动启动模式为singleInstance的时候,该活动会启用一个新的返回栈,来管理这个活动。那它到底有什么用呢?如果我们的某个活动可以被其他用用程序调用,即与其他程序共享该活动实例,使用前面三种方式是无法达到要求的,因为每个应用程序都有自己的栈,同一个活动在不同返回栈中入栈时候必然会创建新的实例对象。而该模式下就解决了这个问题,该模式下会有一个单独的返回栈来管理这个活动,不管哪个程序来访问这个活动,都将会公用一个返回栈。
singleInstance原理示意图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值