1. Activity的四种启动模式
standard: 默认启动模式
在当前应用栈中“先进后出”,Activity的生命周期顺序调用
singleTop: 栈顶复用模式
复用已在栈顶的 Activity。当前Activity在栈顶时 ,不调用onCreate(),调用 onNewIntent();不在栈顶的时候,同 standard
singleTask:栈内复用模式
复用已在栈内的 Activity ,当前Activity在栈内时 ,不调用onCreate(),调用 onNewIntent();不在栈内的时候,同 standard
singleInstance:单例模式
创建一个共享的单栈 Activity ,调用 onNewIntent()
动态设置的启动模式优先级高于静态设置
2. onNewIntent()
onNewIntent() 是为了保证不走 onCreate() 的时候获取 Intent等。
/*
* 复用Activity时的生命周期回调
*/
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent); // 需要赋值新的 intent
/**
* 可以初始化一些 onCreate() 函数中的必要初始化内容
* initView();
* initData();
*/
}
3. 实现微信的两个任务栈
1.设置 launchMode = “singleTask” taskAffinity = “不同于包名” 。
2.launchMode = “singleInstance”也可以达到效果。
本文深入解析了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance,阐述了它们的工作原理及应用场景,同时介绍了如何通过onNewIntent()方法处理Intent数据,最后给出了实现微信双任务栈的具体步骤。
1106

被折叠的 条评论
为什么被折叠?



