当前位置: 首页 > news >正文

(转)Android学习笔记 --- android任务栈和启动模式

(转)Android学习笔记 --- android任务栈和启动模式

1、一个应用程序一般都是由多个activity组成的,任务栈(task stack),记录和存放用户开启的activity。

2、当一个应用程序被打开时,系统就会给他分配拟一个任务栈,当任务栈中所有的activity都退出的时候,任务栈就清空了。任务栈中的id是一个integer的数据类型(自增长的)。

3、在android操作系统里面会存在多个任务栈,一个应用程序对应一个任务栈。

4、默认情况下,关闭掉一个应用程序,系统就会清空了这个应用程序。但是应用程序的进程还会被保留

 

为什么要引入任务栈的概念?

  为了记录用户开启了哪些activity,记录这些activity开启的先后顺序,Google引入任务栈(task stack)的概念,为了拥有更好的用户体验。

 

activity的启动模式中可以指定任务栈的模式:

  在AndroidManifest.xml中对指订activity进行配置:

    <activity android:name=".MainActivity" android:launchMode="singleInstance">

四种启动模式:

  1、standard   默认标准的启动模式,每次startActivity都是创建一个新的activity实例

  2、singleTop  单一顶部模式,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例,而是直接使用这个顶部实例

  3、singleTask  单一任务栈,如果在栈中已经有该activity的实例,就重用该实例,会调用实例的onNewIntent()。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果当中不存在该实例,将会创建新的实例放入栈中。注意:singleTask模式的Activity不管是位于栈顶还是栈底,再次运行这个Activity时,都会destory掉它上面的Activity来保证整个栈中只有一个自己,切记切记”这点是毋庸置疑的。

  4、singleInstance  单态 单例模式 单一实例,整个手机操作系统里面只有一个实例存在,activity总是在栈的顶端(因为他是任务中唯一的一个activity),所以总是能够适当的处理行为

  

posted on 2015-09-16 18:15 luojinwei 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/android-ljwBlobs/p/4814084.html

相关文章:

  • 在ASP.NET中使用一般处理程序生成验证码
  • 微软Visual Studio Code 0.8.0发布,新增多种主题
  • Tomcat中部署WEB项目的四种方法
  • jquery带有参照数据的效果处理
  • PHP版本中的VC6,VC9,VC11,TS,NTS区别
  • Java编程思想学习笔记——字符串
  • 《构建执法》要点总结
  • iOS开发和Android开发的相似之处
  • 《mysql性能调优与架构设计》笔记:三mysql 安全管理
  • Spark和hadoop的关系
  • java7 API详解
  • DNS与BIND
  • 小组级git服务器的搭建
  • hdu 5491(位运算)
  • easyUI datetimebox 自定义显示格式
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • .pyc 想到的一些问题
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6之路之模块详解
  • gf框架之分页模块(五) - 自定义分页
  • happypack两次报错的问题
  • javascript从右向左截取指定位数字符的3种方法
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • tweak 支持第三方库
  • vagrant 添加本地 box 安装 laravel homestead
  • 百度地图API标注+时间轴组件
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 从输入URL到页面加载发生了什么
  • 那些被忽略的 JavaScript 数组方法细节
  • 一个项目push到多个远程Git仓库
  • 《码出高效》学习笔记与书中错误记录
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ###C语言程序设计-----C语言学习(6)#
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $GOPATH/go.mod exists but should not goland
  • (九十四)函数和二维数组
  • (蓝桥杯每日一题)love
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (六)软件测试分工
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • .net 7 上传文件踩坑
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net IOC框架入门之一 Unity
  • .net网站发布-允许更新此预编译站点
  • .pop ----remove 删除
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • /etc/skel 目录作用
  • /proc/stat文件详解(翻译)