android 关于启动模式的进一步理解
2016-04-04 14:58
531 查看
目前在AndroidManifest.xml的配置启动分为四中:
(1).standard:标准模式,就是一般启动Activity的那种默认模式,每一次启动,他都会创建一个实例,不管他是否存在,都会创建。它的实例会保存在他默认条件下的栈里。
注意:如果当前的Activity是通过Application启动的,他会报错:------------理由是:standard模式的Activity会进入启动它的栈,但是,由于是非Activity类型的context,并没有对应的栈,就会出错,解决这个问题方法是在为待启动的Activity添加指定FLAG_ACTIVITY_NEW_TASK标记,这个时候,实际上的Activity是以singleTask为启动模式
(2)singleTask:栈内复用模式,在这种模式下,如果Acyivity位于栈顶,他就不会创建,若Activity没有没有位于栈顶,这样的话,按照栈“先进后出”原则,将会将后面的实例移除,直到当前的实例位于栈顶为止。
(3)singleTop:栈顶复用模式:在这种模式下,如果是新的Activity位于没有位于栈顶,它就会创建新的实例.
(4)singleIntance:单实例模式,它除具有singleTask的所有特性外,唯一一个区别就在于,它只能拥有一个单独的任务栈。
(1).standard:标准模式,就是一般启动Activity的那种默认模式,每一次启动,他都会创建一个实例,不管他是否存在,都会创建。它的实例会保存在他默认条件下的栈里。
注意:如果当前的Activity是通过Application启动的,他会报错:------------理由是:standard模式的Activity会进入启动它的栈,但是,由于是非Activity类型的context,并没有对应的栈,就会出错,解决这个问题方法是在为待启动的Activity添加指定FLAG_ACTIVITY_NEW_TASK标记,这个时候,实际上的Activity是以singleTask为启动模式
(2)singleTask:栈内复用模式,在这种模式下,如果Acyivity位于栈顶,他就不会创建,若Activity没有没有位于栈顶,这样的话,按照栈“先进后出”原则,将会将后面的实例移除,直到当前的实例位于栈顶为止。
(3)singleTop:栈顶复用模式:在这种模式下,如果是新的Activity位于没有位于栈顶,它就会创建新的实例.
(4)singleIntance:单实例模式,它除具有singleTask的所有特性外,唯一一个区别就在于,它只能拥有一个单独的任务栈。
相关文章推荐
- Android canvas绘图基础之运动的时钟
- android sdk 更新镜像
- Android课程---用进度条改变图片透明度
- Android学习之界面篇(五)animateLayoutChanges
- android IPC机制讲解(一)
- Android_在哪里获取Android应用开发技术最新动态
- Android Uri
- Android开发中的findViewById(R.id.textView)
- 【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系
- Android之SurfaceView使用
- Android Gradle Plugin指南(六)——高级构建定制
- Android Gradle Plugin指南(四)——测试
- Android Gradle Plugin指南(三)——依赖关系、android库和多项目配置
- 利用Theme自定义Activity间的切换动画
- Android课程---进度条及菜单的学习
- [Debug记录]getFileExtensionFromUrl 没有值 null
- 在Handler的post方法调用Toast
- Android中layout_gravity和gravity的区别
- AndroidEventBus源码分析
- Android Gradle Plugin指南(二)——基本项目