Activity的四种启动模式
- Standard 无需配置默认模式 Activity可以有多个实例 每次启动都会创建新的实例 无论是否已
存在该类的实例 - SingleTop 类似于标准模式 主要区别在于当一个SingleTopActivity已经位于栈顶时 再去启动时
不会再次创建新的实例 - SingTask 栈中只能有一个实例 如果当前Activity位于栈顶则不会重新创建 如果不在栈顶 则会
使之上的Activity出栈 以重新位于栈顶 - SingleInstance 栈中只存在一个该Activity的实例 singleInstance模式也是单例的,但
和singleTask不同,singleTask只是任务栈内单例, 系统里是可以有多个
singleTask Activity实例的,而singleInstance Activity在整个系统里只有一个实例,启动一singleInstanceActivity时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity。
如何设置启动模式
- 清单文件中针对每个Activity配置属性。
- 通过Intent的Flag来设置Activity的启动模式
清空任务栈
-
clearTaskOnLaunch
clearTaskOnLaunch在每次返回该Activity时,都将该Activity之上的所有Activity都清除。 -
finishOnTaskLaunch
通过这个属性,当离开这个Activity所处的Task时,那么用户在返回时,该Activity就会被finish掉 -
alwaysRetainTaskstate
如果将Activity的这个属性设置为true,那么该Activity所在的Task将不接受任何清理命令,
一直保持当前Task状态。










网友评论