Activity的启动模式

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    ...
    ...
    <activity android:name="com.itheima.launchmode.SecondActivity"
        //配置android:launchMode属性
        android:launchMode="singleTop" >
    </activity>
</application>

1、standard:标准的启动模式
默认应用场景


standar.png

2、singleTop:单一顶部模式
如果Activity已经被开启,并且处于任务栈的栈顶,就不会创建新的Activity,而是复用这个已经开启的Activity。
为了防止出现一些奇怪的用户体验,推荐使用单一顶部模式,整个任务栈可以有多个实例存在.
应用场景:短信发送界面

top.png

3、singletask:单一任务栈
在整个任务栈里面只允许有一个当前Activity的实例存在
如果要开启的Activity在任务栈中已经存在,直接复用这个已经存在的Activity,并且把这个Activity上面的所有的其他Activity给清空
应用场景:如果一个Activity非常消耗内存和cpu资源,建议把这个Activity做成singletask的模式。浏览器的browserActivity

task.png

4、singleinstance:单一实例.
整个手机操作系统只有一个实例存在,并且是运行在自己单独的任务栈里面.
应用场景:通话界面的Activity

instance.png

推荐阅读更多精彩内容