Activity加载模式和Task的关系

Activity的lanuchMode有四种standard(默认),singleTop,singleTask,singleInstance.

 

standard:每次都创建一个实例,默认将Activity加入到当前Task。

 

singleTop:启动的不是当前的Activity的话,则创建一个实例,并加入当前Task,否则抛弃

 

              Intent不做任何反应

 

singleTask:只有一个Task,不会重新创建已存在的Activity。

 

singleInstance:一个Task里只有一个Activity。启动Acivity时,会重新创建一个Task,并

 

              把Activity加入新建的Task。

 

注意:当一个Activity的新实例被创建去处理新Intent时,用户总是可以按返回键返回到之前

 

的状态(之前的Activity)。但是当一个已存在的Activity实例去处理新的Intent时,用

 

不可以返回键返回到Intent到达之前的状态。

 

清处任务栈:

alwaysRetainTaskState属性: 如果根活动此属性设为true,任务将保留在Task

 

                                                 中。即使离开很长一段时间,也不会被系统清除。

 

                 clearTaskOnLaunch属性:如果根活动此属性设为true,只要用户离开就清除根活

 

                                             动之外的活动。

 

                 finishOnTaskLaunch属性: 作用于单个活动。而且它能移除任何活动,包括根活

 

                                              动。当它被设置为true时,任务本次会话的活动的部

 

                                                             分还存在,如果用户离开并返回到任务,它将不再存在。

 

 

 

用户按下Home键后,再打开一个新的活动。默认重新启动一个Task,若打开一个已开启过

 

的活动,将跳到对应的Task中的对应栈顶。

你可能感兴趣的:(android)