Activity的四种启动模式
Activity的启动模式可以在AndroidManifest.xml中,通过android:launchMode或者在Intent的Flag来设置实现。
standard模式
特点:Activity的默认启动模式
每启动一个Activity就会在栈顶创建一个新的实例
缺点:当Activity已经位于栈顶时,再次启动Activity时还需要创建一个新的实例,不能直接复用。
singleTop(栈顶复用)模式
- 特点:该模式会判断要启动的Activity实例是否位于栈顶,如果位于栈顶则直接复用,调用其onNewIntent()方法,否则创建新的实例。
- 缺点:如果Activity并未处于栈顶位置,则还是可能会创建多个实例。
singleTask(栈内复用)模式
- 特点:Activity只会在任务栈里存在一个实例。如果要激活的Activity在任务栈里已经存在,就不会创建新的Activity,而是直接复用这个已经存在的Activity,调用其onNewIntent()方法,并且清空这个Activity任务栈上的所有Activity。
singleInstance(单一实例)模式
- 特点:整个手机操作系统中只有它一个实例存在,该模式的Activity会启动一个新的任务栈来管理Activity实例。无论从哪个任务栈中启动该Activity,都会是该Activity所在的任务栈转移到前台,从而使Activity显示。主要的作用是为了在不同程序中共享一个Activity实例。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!

