Activity的四种启动模式

来源:互联网 发布:java文本框不可编辑 编辑:程序博客网 时间:2024/06/07 21:20

一、启动模式概述

学习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存在。应用于来电显示。
这里写图片描述

1 0