onNewIntent()
如果启动Activity时不创建新的实例而是重用之前的实例,则会调用onNewIntent()方法。
standard
标准模式,也是Activity的默认模式,这种模式下的Activity可以被多次实例化。
singleTop
栈顶复用模式,如果Activity处于栈顶,再次启动这个Activity时,不会创建新的实例,而是重用位于栈顶的实例。
singleTask
栈内复用模式,如果Activity在任务栈中已存在,再次启动这个Activity时,会重用已存在的实例,并销毁在这个Activity栈上方的所有Activity。
singleInstance
单例模式,第一次启动Activity时会创建新的任务栈,并在该任务栈中创建Activity实例,再次启动Activity时,会重用已存在的任务栈和实例。
启动模式的设置
Activity的启动模式可以在AndroidMainifest中设置,也可以通过Intent设置,Intent方式的优先级更高,AndroidMainifest方式无法设置FLAG_ACTIVITY_CLEAR_TOP,Intent方式无法设置singleInstance。
<activity
android:name=".MainActivity"
android:launchMode="singleTop" />
Intent intent = new Intent (MainActivity.this,TestActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
网友评论