1. Activity的四种启动模式
Standard : 默认启动模式,在当前应用栈中“先进后出”
SingTop: 栈顶复用模式,复用已在栈顶的 Activity ,调用 onNewIntent(); 不在栈顶的时候,同 Standard
SingTask:栈内复用模式,复用已在栈内的 Activity ,调用 onNewIntent();不在栈内的时候,同 Standard
SingInstance:单例模式,创建一个共享的单栈 Activity ,调用 onNewIntent()
动态设置的启动模式优先级高于静态设置
2. onNewIntent()
onNewIntent() 是为了保证不走 onCreate() 的时候获取 Intent等。
/*
* 复用Activity时的生命周期回调
*/
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent); // 需要赋值新的 intent
initView();
initData();
}
3. 实现微信的两个任务栈
设置 launchMode = “singTask” taskAffinity = “不同于包名” singInstance 也可以