一.Standard模式
第一种Activity启动模式称为标准模式,是Activity默认的启动模式,在不指定Activity启动模式的情况下。
在Standard模式下,每当启动一个新的Activity时,就需要进入任务栈,并处于栈顶,每次使用Standard模式Activity,每次使用都需要创建新的实例,因为是标准模式,所以被应用于绝大多是应用场景中
用栈原理解释:例如如图为一个简单的按钮点击事件,点击ToFIRST按钮返回当前页面
当我点击三次按钮,意图过滤器中显示如下
发现在原来启动的基础上显示了三个不同的地址(进了三次占),
当我退出模拟器是需要点击3次才能返回主界面,此时发现过滤器
此时我们发现在过滤器中新增了三次地址(返回了三次)
缺点:在使用中,同一个页面可能被重复打开多次,使用麻烦,用户体验差
二.SingleTop模式(栈顶模式)
与standard相似,解决了activity在栈顶时需要重复创建同一个实例的问题
即 解决了用户体验问题,避免已经被打开的页面被重复打开多次
特点:便于开发者进行栈顶操作,但非栈顶与standard模式无异
三.singleTask模式
当activity启动模式为singleTask模式时,每当启动该Activity时,系统首先会检查栈中是否有该activity实例,如果发现已存在Activity实例,会直接使用该实例,并将该实例之上的所有Activity出站,若没有则创建新实力。
应用领域:资源开销(内存占用,CPU占用)非常大的使用该模式,例如浏览器打开已给网页(html解析器、渲染器、css解析器、Javascript执行引擎)都是由BrowseActivity处理的,为了保证打开的每一个网页都是同一个BrowseActivity处理的,也就是在整个应用状态中只允许一个实例存在。
四.singleinstance模式
singleInstance模式加载Activity时,只会创建一个Activity实例,并会使用一个全新的任务栈来装载该Activity实例。特点整给计算机操作系统中只用一个实例存在