虽然是一个很基础的知识点但还是想记录一下,以尽可能简单的语言。
android启动模式launchMode有四种:
standard
标准模式,也是系统默认模式。每次启动activity都会创建一个新的实例,无论这个实例是否存在。
singleTop
栈顶复用模式。当即将要启动的activity已经位于任务栈顶,则此activity不会重新创建,它的onCreat(),onStart()方法也不会被调用,这时候会回调的方法是onNewIntent(),我们可以在这个方法中做一些初始化的操作。如果我们要启动的activity没有在任务栈顶,那么系统会为我们建一个新的实例,这时候就和standard模式创建activity一样了。
singleTask
单实例模式,也叫栈内复用模式。此模式下,某activity在整个任务栈中只能存在一个实例,即使多次启动,也不会重复创建实例,而是onNewIntent()方法被调用。此模式有一个clearTop的效果,比如当前栈中实例的顺序是ABCD,如果B是singleTask模式,这时候启动B,则系统会把B移动到栈顶显示,同时销毁CD,只剩AB。
singInstance
单实例模式。它具有singleTask所有特性,而且有过之无不及,这种模式的activity只能单独位于一个任务栈中。