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之能单独地位于一个任务栈中

 

posted @ 2016-04-21 15:55  黑炭BC  阅读(130)  评论(0编辑  收藏  举报