Android_06_Activity的四种起步模式

Android_06_Activity的四种启动模式
Activity的四种启动模式
>每个应用会有一个Activity任务栈,存放已启动的Activity

>Activity的启动模式,是用来修改任务栈的排列情况

在清单文件中,可对Activity的启动模式进行设置,如:

<activity 
            android:launchMode="singleInstance"
            android:name="com.itheima.lifecycle.SecondActivity"
            ></activity>

注:其中launchMode属性就是用来修改其启动模式的


四种启动模式的特点如下:

1> standard 标准启动模式

标准启动模式遵循栈的特点,先进后出

2> singleTop 单一顶部模式 

如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。

保证栈顶如果存在,不会重复创建;如果activity不在栈顶,尽管先前已经创建了,其还是会重复创建

应用场景:浏览器的书签
3>  singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在

当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,

并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。保证整个任务栈里面只有一个实例存在

 应用场景:浏览器的activity

 如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity为singletask的启动模式。


注:前面三种模式的范围是在每个应用中,只会创建一个任务栈,

第四种模式singleInstance则是在整个操作系统中只会存在一个activity实例


4>  singleInstance启动模式非常特殊, activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在

若你想创建多个activity,它并不会重复创建,只是从后台移动到了前台,如果你点击返回键,销毁了这个activity,那么

其就不会存在了!含有activity的这个新任务栈也不会存在了!

如果你要保证一个activity在整个手机操作系统里面只有一个实例存在,使用singleInstance
应用场景: 电话拨打界面

版权声明:本文为博主原创文章,转载请注明出处