Activity启动模式介绍

来源:互联网 发布:医疗大数据案例 编辑:程序博客网 时间:2024/06/05 19:39

     先跟大家介绍一下任务栈,任务栈是存放activity的地方,就是你每开启一个activity都往任务栈的栈顶添加一个新的activity(这是正常情况下),当你点击返回的时候就会把任务栈的栈顶的activity从任务栈中弹出去。所以任务栈的进入模式是先进后出。

    avtivity的启动模式跟任务栈是紧密相连的。activity的启动模式有四种:standard、singleTop、singleTask、singleInstance。

(1)standard:这种模式是默认的模式、也是最常用的。开发中起码90%以上是这种模式。这种模式不存在复用,就是无脑的新打开一个activity。

(2)singleTop:

  <activity            android:name=".Module.WorkTask.BeginWorkFlowActivity"            android:launchMode="singleTop" />

当你开启一个新的activity的时候回进行判断,判断你想要开启的activity是不是已经在任务栈的顶端,如果是就不会重新开启一个activity,会复用站顶端的那个activity进行显示。

(3)singleTask:这种启动模式在开发中占了8%,最长用到的是主界面。

 <activity            android:name=".Module.WorkTask.BeginWorkFlowActivity"            android:launchMode="singleTask" />
   当你开启一个activity的时候回先判断任务栈中是否已经存在了你想开启的那个activity,如果存在了就直接复用。但是会关闭在任务栈中排序在你要复用的activity前面的所有activity。比如:我上传图片的那个栈,我现在想开启activityB,然后就会复用activityB,但是会关闭activityC和activityD。

(4)singleInstance:

<activity            android:name=".Module.WorkTask.BeginWorkFlowActivity"            android:launchMode="singleInstance" />

  当你把想要开启的那个activity设置了这个启动模式之后,那么你开启的这个activity开启的时候会单独开启一个任务栈,并且你重复开启该activity都会进行复用,只不过是把任务栈的位置进行了调换。


0 0
原创粉丝点击