关于activity的启动模式
Posted 庄生晓梦、杨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于activity的启动模式相关的知识,希望对你有一定的参考价值。
在android中每个界面都是一个Activity ,界面的切换实际上是对不同Activity实例化的过程。而启动模式就决定Activity启动运行方式。
1、设置方式
它是在主配置文件中,Activity标签下的一个属性:android:launchMode=""
2、属性值:
standard (标准,默认)
如果不设置一个Activity的启动模式,则该Activity默认的启动模式就是standard,该模式下,每次启动一个该Activity都会
实例化一个新的Activity对象,并且放入任务栈中。它们都同属于一个Task
singleTop
见名知意,该模式为栈顶唯一模式。当Activity处于该模式下的时候,当需要启动此Activity时,会先看此Activity的实例是否存在于
任务栈栈顶,如果位于栈顶,则重用该实例,不进行实例化。如果任务栈顶不是该Activity,则创建新的Activity,并且压入任务栈内。
singleTask
此模式为栈内唯一模式,此模式与栈顶唯一模式不同在于,栈顶唯一模式只看栈顶是否是我们要启动的Activity,而栈内唯一模式要看我们要
启动的Activity是否位于整个栈内,从上到下检查,若存在,则将该Activity回到栈顶,即将该Activity上面所有的Activity进行出栈操作,
进行销毁,这样我们需要的Activity将回到栈顶,得到焦点,与用户进行交互。
singleInstance
此模式为单一实例模式。处于这种模式下的Activity被启动时,先检测是否有存放该Activity的任务栈,若有则复用相应的Activity,若没有,创建
新的Activity并放入一个新的任务栈,每个任务栈中只存放一个Activity对象,不可能存在其它Activity对象,处于这种状态下的Activity对象不存在
回退窗口。
总之,在Android 开发中,合理运用Activity的启动模式,将大大节省系统内存开销,提高运行效率。
以上是关于关于activity的启动模式的主要内容,如果未能解决你的问题,请参考以下文章
Activity 的启动模式有4种,分别是standardsingleTopsingleTasksingleInstance
Android开发学习之路--Activity之四种启动模式