Android Activity任务栈

本文介绍了Android中Activity的任务栈概念,它遵循后进先出的原则。详细阐述了Activity的四种启动模式:standard、singleTop、singleTask和singleInstance,解释了每种模式在任务栈中的行为和应用场景,帮助开发者更好地管理Activity的生命周期和用户界面导航。

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

1. Activity任务栈


Activity任务栈是Android对Activity界面的一种管理方式。任务栈,顾名思义就是“后进先出”,也就是说,当从一个Activity中启动一个新的Activity界面时,新界面将位于Activity栈的栈顶;当用户按下返回键时,系统将弹出栈顶的Activity并将上一个Activity置为栈顶,此时应用界面也就回到该Activity界面了,如果应用只包含一个Activity或者当前任务栈只存在一个Activity时,按下返回键,系统将退出应用。


2. 启动模式


Activity启动模式表示Activity在任务栈中的切换或启动方式,该模式应该在AndroidManifest.xml文件下配置。下面列出了Activity启动模式的完整配置代码:

<activity
    android:name="come.example.ExampleActivity"
    android:label="@string/activity_example"
    android:launchMode="standard">
</activity>

其中android:launchMode就表示启动模式,可用启动模式包含standard、singleTop、singleTask、singleInstance四种,如果没有显示声明启动模式,则默认为standard模式。


2.1 standard模式


standard模式是所有Activity的默认启动模式。该模式对Activity的启动和切换没有任何限制,任何时候我们通过startActivity()或startActivityForResult()启动一个standard模式的Activity时,系统都将创建一个该Activity的实例并放置到栈顶。


2.2 singleTop模式


当一个Activity被设置singleTop模式时,那么在Activity任务栈的栈顶将不能同时存在该Activity的两个实例。但是在整个任务栈中,可以交错存在该Activity的多个实例。该模式可以防止同一个Activity重复创建(启动)多次。


2.3 singleTask模式


如果一个Activity被设置为singleTask模式时,那么在整个任务栈中只能存在该Activity的一个实例。当重复启动该Activity时,系统将会销毁(已经存在的)该Activity实例之前的所有其他Activity,并将该Activity移至栈顶


2.4 singleInstance模式


 所有singleInstance模式的Activity都将独立存在一个任务栈中,并且也不能重复创建或启动。当应用首次启动一个singleInstance模式的Activity时,系统将为应用创建一个新的前台任务栈,并将该Activity置于栈内,而且应用的界面永远都是显示前台任务栈。此后任何时候启动其他非singleInstance模式的Activity时,系统将会创建另一个前台任务栈,然后将所有其他非singleInstance模式的Activity按照启动顺序置于该前台任务栈中,最后将singleInstance模式的Activity所在的任务栈移至后台。此后启动任何Activity都只是前后台任务栈的切换,区别是,重复启动同一个singleInstance模式的Actvity时,系统仅仅是将该Actvity所在的任务栈切换至前台,而启动其他类型的Activity时,系统不但需要切换任务栈,而且需要为该任务栈添加新的Activity实例。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值