activity启动模式探究
来源:互联网 发布:使命召唤ol雷切宏数据 编辑:程序博客网 时间:2024/05/17 22:09
首先说说任务栈:分为前台任务栈和后台任务栈,顾名思义,前台任务栈才能和用户交互,所以如果你要启动一个在后台任务栈已经存在实例的activity,要么在当前的前台任务栈上重新创建activity,要么就把整个后台任务栈放到前台任务栈之上,再把这个要启动的activity上方的其它activity清空出栈,具体要看这个activity的启动模式是什么。
众所周知,activity有四种启动模式:
1.standard
不管当前任务栈(先进后出,activity就存放于此)是否有这个activity的实例,都会重新创建(以这个模式启动的activity会自动进入启动它的activity所在的栈,所以如果你用application的context来启动activity就会报错,原因是application压根没有所谓的任务栈)
2.singleTop
当要启动这个模式的activity时,会检查当前任务栈的栈顶,如果存在就不会重新创建实例。
3.singleTask
这个最复杂,以这个模式启动的activity,可以在配置文件中设置它想要在哪个任务栈中启动,如android:taskAffinity=”com.wzd.task1”,第一次启动时这个任务栈肯定不存在,故会先创建这个任务栈。如果不指定,默认为application的taskaffinity(默认任务栈名为应用的包名),也就是不会重新创建任务栈。
指定了与这个activity关联的任务栈以后,当启动这个activity时,系统就会先看有没有这个任务栈,没有就创建任务栈再把这个activity压入栈中,最后把这个任务栈移到最上面来,把其他任务栈压下去。如果有这个任务栈的话,检查是否有这个activity的实例,有的话就清空这个activity上方的其他activity,这样这个任务栈的栈顶就是这个activity了,再把这个任务栈移到最前面来,把其他任务栈压下去。如果没有就创建这个activity压入栈顶。
4.singleInstance
以这种模式启动的activity会单独的存在于一个新的任务栈中。
- activity启动模式探究
- activity启动模式探究
- activity启动模式探究
- android Activity 四大启动模式探究
- Android 探究Activity的启动模式
- 探究Activity的启动流程
- Android 开发艺术与探究 第一章 Activity 的生命周期和启动模式
- Android开发艺术探究(一):Activity的生命周期和启动模式
- Android中Activity启动过程探究
- Android中Activity启动过程探究
- Android中Activity启动过程探究
- Android中Activity启动过程探究
- android Activity启动模式
- Android Activity启动模式
- activity启动模式详解
- Activity启动模式1
- activity的启动模式
- Activity有四种启动模式
- 3——管道
- Linux中find常见用法示例
- activiti 工作流 web 流程设计器 SSM activiti工作流
- js代码回收机制
- 五分钟理解Java的反射API
- activity启动模式探究
- iOS 基于环信SDK实现即时通讯-语音、视频聊天
- Android Eclipse Unable to execute dex: Multiple dex files define
- SQLServer中char、nchar、varchar、nvarchar
- 最长公共子序列
- 欢迎使用CSDN-markdown编辑器
- PHPstorm实现PHP代码直接运行,并动态更新服务器代码
- Eclipse中10个最有用的快捷键组合
- 数组和集合的相互转换