Activity的四种启动模式

本文介绍了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance。standard模式为默认模式,允许创建多个实例;singleTop模式在Activity位于栈顶时重用实例;singleTask模式确保Activity实例的唯一性;singleInstance模式则在整个系统中只允许存在一个实例。

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

一、启动模式概述

学习android好久了,今天介绍一下启动模式。
每个项目里都有一个AndroidMainfest.xml配置文件。里面有许多属性需要配置,不然都是默认的。Activity的启动模式就是需要我们配置launchMode这个属性。
启动模式有四种,分别是:standard,singleTop,singleTask,singleInstance.其中,默认使用standard模式。

二、启动模式分类

1.standard
standard模式是默认的启动模式,不用为配置android:launchMode属性,也可以指定standard。在这个模式下,可以有多个实例,也可以多个相同的Activity叠加。每当启动一个新的Activity,它会进入任务栈,并处于栈顶的位置,每次启动都会创建一个新的实例。它适用于绝大多数的应用场景。
例如:每次点击按钮,便会启动一个新的Activity,新的在它上方。点back键会按照栈顺序依次退出。
这里写图片描述

最后完全出栈。
这里写图片描述
2.singleTop
AndroidMainfest.xml配置文件中launchMode属性配置singleTop。
sinleTop 启动模式与standard类似,不同的是,当启动的Activity位于栈顶时,则可以直接使用它,不用创建新的实例。它用于解决一个用户体验的问题,避免已经打开的页面被重复打开。
例如:
这里写图片描述
3.singleTask
singleTask,要注意的是,每次启动该Activity 时,系统首先会检查是否存在该Activity的实例,启动的目标Activity如果已经存在于栈中,不管处于栈的任何位置,都可以重用该实例,然后把该实例的对象全部实例清除,栈中只有唯一实例对象,不会存在多个。它适用于资源开销(内存占用,CPU占用)非常大的使用。
这里写图片描述
4.singleInstance
singleInstance模式加载Activity时,只会创建一个Activity实例,并且会使用一个全新的任务栈来装载该Activity实例。特点是在整个手机操作系统里只有一个实例存在,不允许有别的Activity存在。应用于来电显示。
这里写图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值