Android_06_Activity的四种启动模式
2015-10-21 09:13
302 查看
Activity的四种启动模式
>每个应用会有一个Activity任务栈,存放已启动的Activity
>Activity的启动模式,是用来修改任务栈的排列情况
在清单文件中,可对Activity的启动模式进行设置,如:
注:其中launchMode属性就是用来修改其启动模式的
四种启动模式的特点如下:
1> standard 标准启动模式
标准启动模式遵循栈的特点,先进后出,当一个activity已经处于栈顶,若再次点击启动这个activity,
这个activity依旧又会新启动一个activity,也就是说,此时栈顶就有两个这样的activity了;
2> singleTop 单一顶部模式
如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。
保证栈顶如果存在,不会重复创建;如果activity不在栈顶,尽管先前已经创建了,其还是会重复创建
应用场景:浏览器的书签
3> singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在
当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,
并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。保证整个任务栈里面只有一个实例存在;
如果没有这个activity,则会新创建一个这样的activity;
应用场景:浏览器的activity
如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity为singletask的启动模式。
注:前面三种模式的范围是在每个应用中,只会创建一个任务栈,
第四种模式singleInstance则是在整个操作系统中只会存在一个activity实例
4> singleInstance启动模式非常特殊, activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在
若你想创建多个activity,它并不会重复创建,只是从后台移动到了前台,如果你点击返回键,销毁了这个activity,那么
其就不会存在了!含有activity的这个新任务栈也不会存在了!
如果你要保证一个activity在整个手机操作系统里面只有一个实例存在,使用singleInstance
应用场景: 电话拨打界面
注:关于这四种启动模式,详情可参考郭霖的《第一行代码Android》
>每个应用会有一个Activity任务栈,存放已启动的Activity
>Activity的启动模式,是用来修改任务栈的排列情况
在清单文件中,可对Activity的启动模式进行设置,如:
<activity android:launchMode="singleInstance" android:name="com.itheima.lifecycle.SecondActivity" ></activity>
注:其中launchMode属性就是用来修改其启动模式的
四种启动模式的特点如下:
1> standard 标准启动模式
标准启动模式遵循栈的特点,先进后出,当一个activity已经处于栈顶,若再次点击启动这个activity,
这个activity依旧又会新启动一个activity,也就是说,此时栈顶就有两个这样的activity了;
2> singleTop 单一顶部模式
如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。
保证栈顶如果存在,不会重复创建;如果activity不在栈顶,尽管先前已经创建了,其还是会重复创建
应用场景:浏览器的书签
3> singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在
当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,
并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。保证整个任务栈里面只有一个实例存在;
如果没有这个activity,则会新创建一个这样的activity;
应用场景:浏览器的activity
如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity为singletask的启动模式。
注:前面三种模式的范围是在每个应用中,只会创建一个任务栈,
第四种模式singleInstance则是在整个操作系统中只会存在一个activity实例
4> singleInstance启动模式非常特殊, activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在
若你想创建多个activity,它并不会重复创建,只是从后台移动到了前台,如果你点击返回键,销毁了这个activity,那么
其就不会存在了!含有activity的这个新任务栈也不会存在了!
如果你要保证一个activity在整个手机操作系统里面只有一个实例存在,使用singleInstance
应用场景: 电话拨打界面
注:关于这四种启动模式,详情可参考郭霖的《第一行代码Android》
相关文章推荐
- Android_adb的常用命令
- android安全学习之6—signapk分析
- AndroidStudio如何引用一个Module
- Android的消息机制之ThreadLocal的工作原理
- 代码实现Android5.0的下拉刷新效果
- java.lang.NoSuchMethodError: No static method hasOnClickListeners(Landroid/view/View;)Z in class Lan
- Android之AlarmManager
- Android Activity之间跳转总结
- android 内存泄漏之Context--整理-引用
- Android--sharepreference总结
- Android_QQ好友列表实现---ExpandableListView可展开列表视图
- webrtc android demo开发
- 1、Android概述
- 关于Android import-module 和NDK_MODULE_PATH
- Android定位入门(2)判断GPS是否开启
- Android NDK开发简介 NDK和SDK以及JNI有什么关系?
- Android最新资源官方下载地址
- AnimCheckBox按钮点击动画效果《IT蓝豹》
- Android Selector自定义背景的使用
- Android开发中图片的加载