Android Activity的4种启动模式

本文详细介绍了Android Activity的四种启动模式:标准启动模式、栈顶启动模式、单任务栈模式和单实例模式,包括它们的具体实现和应用场景。

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

相信大家都非常熟悉Activity的启动模式了,不同的人也有不同的理解,特别是面试的时候也会被经常拿来问,今天特意整理了下,以留作纪念.

Standard-标准启动模式:

该模式也即是默认的启动模式,如果被启动的Activity的启动模式是standard的话,每次启动都会在任务栈中创建新的实例,即创建新的Activity,例如Activity A 启动Activity A,那么任务栈就会存在2个Activity A,当按下返回键的时候会依次退出任务栈.

SingleTop-栈顶启动模式:

该模式很好理解,可谓见名知意,既然是栈顶启动模式,那么启动的话肯定和栈顶有关,即如果启动的目标Activity是SingleTop模式的话,那么首先会判断该Activity是否处于任务栈的栈顶,如果处于的话,就不会创建新的实例,直接打开处于任务栈的Activity,否则的话就会创建新的实例.例如任务栈中有Activity A和Activity B,其中Activity A处于栈顶且是栈顶启动模式,那么在Activity A中再打开Activity A本身,是不会再创建新的Activity A的;相反,如果Activity B处于栈顶,那么在Activity B启动Activity A就会重新创建Activity A.

SingleTask-单任务栈模式:

该模式也很好理解,所谓单任务栈的意思就是说一个任务栈里面只能存放该实例一次.即如果要打开的目标Activity是单任务栈模式的,那么无论改目标Activity处于任务栈的什么位置,它都会将处于它之上的所有Activity统统弹出任务栈来打开它本身,而不会重新创建新的Activity;例如任务栈中有Activity A,B,C,D,(A处于栈顶,D处于栈低),如果D是单任务栈启动模式,那么在A中打开D的效果就是D被打开了,同时处于D之上的A,B,C都会弹出任务栈,当在D中按下返回键的时候,就会直接回到桌面.

SingleInstance-单实例模式:

单实例模式比较特殊,它和其他3种启动模式的最大区别就是打开它,它会创建一个新的任务栈来存放它的实例.其它3种都是在同一个任务栈中存在的.还有一个特点就是,单实例的Activity是单独霸占一个任务栈的,即该任务栈中只有一个Activity实例.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值