android 启动模式

Standard:

标准模式,每次启动都会创建一个实例,无论这个实例是否存在

SingleTop :栈顶复用模式

栈中已存在实例且存在于栈顶的时候复用实例,不在调用oncreate()-onstart(),而是onNewIntent()
关于onNewIntent()说明:Standard情况下启动activity实例不调用,不重复生成实例时调用,需要setIntent(),否则返回旧的intent数据

protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
//must store the new intent unless getIntent() will return the old one
processExtraData();
}

SingleTask :栈内复用模式

栈中存在实例就不会创建新的实例,不需要该实例存在于栈顶,这也是跟SingleTop的区别所在,
同时复用实例时会销毁该实例上面的其他实例,复用方式同SingleTop

SingleInstance

单实例模式,创建实例会新建一个栈,且栈内只存在这个实例,如果该实例存在,新的请求不会再创建新的实例,
一般用于系统应用。

Note

相关1:启动模式的设置方式有两种,1)Manifest.xml中指定android:launchMode 2)intent跳转时intent.addFlags 动态注册优先级高。
相关2:应用场景,SingleTask 用于 应用主页。

你可能感兴趣的:(Android)