[android]android Task 任务 简介

您所在的位置:网站首页 左右大脑功能区域分布图片 [android]android Task 任务 简介

[android]android Task 任务 简介

2024-07-10 05:03:38| 来源: 网络整理| 查看: 265

       关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。  Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员的理解难度,帮助大家更好的进行开发和配置

任务      

在 SDK中关于Task(guide/topics/fundamentals.html#acttask),有一个很好的比方,说,Task就相当于应用(application)的概念。在开发人员眼中,开发一个Android程序,是做一个个独门独户的组件,但对于一般用户而言,它们感知到的,只是一个运行起来的整体应用,这个整体背后,就是Task。  Task,简单的说,就是一组以栈的模式聚集在一起的Activity组件集合。它们有潜在的前后驱关联,新加入的Activity组件,位于栈顶,并仅有在栈顶的Activity,才会有机会与用户进行交互。而当栈顶的 Activity完成使命退出的时候,Task会将其退栈,并让下一个将跑到栈顶的Activity来于用户面对面,直至栈中再无更多 Activity,Task结束

事件    Task栈   

点开Email应用,进入收件箱(Activity A)    A  

选中一封邮件,点击查看详情(Activity B)    AB  

点击回复,开始写新邮件(Activity C)    ABC  

写了几行字,点击选择联系人,进入选择联系人界面(Activity D)    ABCD  

选择好了联系人,继续写邮件    ABC  

写好邮件,发送完成,回到原始邮件    AB  

点击返回,回到收件箱    A  

退出Email程序    null

 如上表所示,是一个实例。从用户从进入邮箱开始,到回复完成,退出应用整个过程的Task栈变化。这是一个标准的栈模式,对于大部分的状况,这样的Task 模型,足以应付,但是,涉及到实际的性能、开销等问题,就会变得残酷许多。比如,启动一个浏览器,在Android中是一个比较沉重的过程,它需要做很多初始化的工作,并且会有不小的内存开销。但与此同时,用浏览器打开一些内容,又是一般应用都会有的一个需求。设想一下,如果同时有十个运行着的应用(就会对应着是多个Task),都需要启动浏览器,这将是一个多么残酷的场面,十个Task栈都堆积着很雷同的浏览器Activity,是多么华丽的一种浪费啊。于是你会有这样一种设想,浏览器Activity,可不可以作为一个单独的Task而存在,不管是来自那个Task的请求,浏览器的Task,都不会归并过去。这样,虽然浏览器Activity本身需要维系的状态更多了,但整体的开销将大大的减少,这种舍小家为大家的行为,还是很值得歌颂的

LaunchMode(启动模式)  1、标准模式    1)从task中启动Activity时,该Activity的新实例总是在当前      task中创建    2)每次启动Activity,都会创建该Activity类的新实例    3)一个task中可以存在同一Activity的多个实例    4)一个Activity的多个实例可以出现在多个task栈中  2、singleTop    1)如果启动模式设置为singleTop的Activity实例未处于栈顶,      则其表现与启动模式设置为standard的Activity的表现一致    2)如果启动模式设置为singleTop的Activity的实例位于任务栈的栈顶      则,不会创建该Activity的新实例。只是调用位于栈顶的该Activity      实例的onNewIntent方法,将新的intent传递给该实例。    3、singleTask    1)设置为singleTask的Activity,具有全局唯一性,在Android系统中      只能创建该Activity的一个实例。    2)如果启动s设置为singleTask的Activity时,已经存在该Activity的      实例,则将该实例之上的所有Activity实例释放,将该实例重新带回到      栈顶,并调用器onNewIntent方法,将新的intent传递给该实例    3)在创建设置为singleTask模式的Activity的实例时,如果当前task的      taskAffinity与该Activity的taskAffinity一致,则直接在当前task中      创建;如果当前task的taskAffinity值与该Activity的taskAffinity不一致      则在新的任务中创建该Activity的实例。  4、singleInstance    1)当创建设置为singleInstance模式的Activity时,总是在新的任务中创建    2)设置为SingleInstance模式的Activity,具有全局唯一性。在Android系统      中只能存在该Activity的一个实例    3)设置为singleInstance模式的Activity,总是单独在一个task中存在      也就是说在该Activity所在的task栈中不可能存在其他的activity

[android]android Task 任务 简介 android Task 任务 launchMode 简介 android Task 任务 解析 Android Task任务栈 Android task任务栈 android Task简介 android的task任务栈 android Task任务基础了解 android的task任务栈 android的task任务栈 android的task任务栈 android的task任务栈 Android查询任务栈Task Android任务栈简介 android异步任务简介 Android任务栈简介 Android下affinities和任务(task) Android中的任务栈(Task Stack) 请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别 nginx模块分析 【最大子矩形】面积 据说史上最牛的vim配置文件 计算本月有几天 [android]android Task 任务 简介 曾经狠幸福空间QQ日志-喜欢伤感,甚至颓废 Android应用开发之(利用好图片缓存) Redmine的安装、总结和心得 OpenGL的入门学习 HPC软件调试列表 你只是在累了、伤了、痛了的时候才想起我 谈谈指针及其相关的若干体会 Redis 事务


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭