Android启动模式
以下为读书笔记--android开发艺术探索
1.standard
standard模式启动的activity默认进入启动它的activity所属的任务栈,若非activity类型的Context(ApplicatoinContext)没有什么任务栈,这样启动就会有问题,为待启动的activity指定一个标志位FLAG_ACTIVITY_NEW_TASK标志位,这样启动时创建一个新的任务栈,以singleTask模式启动
ABCD 再启动D ABCDD
application用法
http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html
2.singleTop栈顶复用
ABCD 启动D ABCD 在栈顶,只回调onNewIntent,不在栈顶仍然重新创建
3.singleTask:栈内复用模式
当一个具有singleTask模式的Activity请求启动后,比如Activity A,系统首先会寻找是否存在A想要的任务栈,如果不存在,就重新创建一个任务栈S,热后创建A的实例后放入S中。如果存在A所需要的任务栈,这时要看A在不在栈中有实例存在,如果有,那么系统就会把A调到栈顶并调用他的onNewIntent方法,如果实例不存在,就创建A的实例并把A压入栈中
singleTop具有clearTop效果,若为ADBC,onNewIntent D时就会变成,AD
4.singleInstant:单实例模式
加强版的singleTask,具有singleTask的所有特性,且此模式下的activity之能单独地位于一个任务栈中