Activity和Task
1.Task
- 每个应用程序对应每个Task,Task里面以栈的形式存储多个Activity。
- 不同应用程序的切换(如按下home键,去启动另一个app,该app显示在前台,之前app就被放置在后台)其实就是不同Task的前后台切换。
- 按“back”键其实就是将当前Task(应用程序)顶部的Activity弹出,将下一个Activity显示出来
2.Activity(不同Task下,相同Task下)和Task
Intent中还定义了flag属性(4个常量):
FLAG_ACTIVITY_NEW_TASK;
FLAG_ACTIVITY_CLEAR_TOP;
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED;
FLAG_ACTIVITY_SINGLE_TOP;
在<activity>标签中可以使用如下6个属性:
android:taskAffinity=""
android:launchMode=""
android:allowTaskReparenting=""
android:alwaysRetainTaskState=""
android:clearTaskOnLaunch=""
android:finishOnTaskLaunch=""
2.1 Task和Activity的亲属关系
默认情况下,一个应用程序内的所有Activity都有亲属关系(它所属的Task),且属于同一个Task。
亲属关系是指Activity所处的Task,某个Activity可以有多个”爸爸“(Task,前提是allowTaskReparenting设置为"true")
亲属关系起作用的前提:
a.Intent里包含了FLAG_ACTIVITY_NEW_TASK标志
带有这个Intent的Activity会去找它的亲属关系的”爸爸“(Task),找到了
就置于该Task的顶部,没有则创建新的Task
b.<activity>里allowTaskReparenting设置为"true".
当该Activity在不同的Task(该Task与Activity具有亲属关系)里被启动(呼唤)时,
该Activity可以在不同的Task(前提是该Task与Activity具有亲属关系)之间移动
修改亲属关系的方法:
<activity>里taskAffinity属性可以设置它的亲属关系(指定所属的Task)。
2.2 launchMode(启动模式)
该属性有四个值,分别为“standard”,“singleTop”,“singleTask”,“singleInstance”。它们决定了Activity的创建方式,以及如何响应intent的行为
“standard”/“singleTop”
共同点:
该模式的Activity可以实例化多次,并且每处理一个新的intent都会创建一个新的Activity来处理
(除了singTop的某种情况,如下)。standard为默认启动模式
不同点:
(对intent的处理方式):当仅当singleTop的Activity位于目标Task,且位于stack的顶部,
当一个intent发过来的时候,它不会创建新的实例,而是调用它的onNewIntent()方法里处理该Intent。
“singleTask”/“singleInstance”
共同点:只能有一个实例,且总是位于stack的底部。
不同点(对intent的处理方式):
singleTask的Activity只可以允许“standard”,“singleTop”的Activity进入它的Task里。
它处理intent的方式是,只有它位于stack的顶部时才调用onNewIntent()方法处理该Intent,不在顶部时则丢弃
而“singleInstance”的Activity不允许其他的Activity进入它的Task里,所以它既是位于
stack的底部,也位于stack的顶部,因此只能intent到来时只能由它处理(调用onNewIntent()方法)。
2.3 清除堆栈
默认情况下,当用户离开一个应用程序较长时间时,系统就会将Task的所有Activity清除,
除了根Activity,既只保留初始的Activity。当然你可以通过以下属性的修改来改变。
clearTaskOnLaunch:一旦用户离开应用程序再次返回时,系统会清除所有的Activity除
了根Activity。
alwaysRetainTaskState:保留Task的状态,即所有的Activity都不会被清除。
finishOnTaskLaunch:可以用在所有的Activity上,不局限于根Activity,true表示一旦
用户离开了task,则该Activity就不存在。
转载于:https://www.cnblogs.com/beyondbycyx/p/4334013.html
Activity和Task相关推荐
- Android中Activity和task,活动亲和力,启动模式,活动状态以及生命周期,激活钝化
Activity和task: android通过保持所有activity在同一个task中来维护用户的经历-典型是在launcher选择的 应用,栈顶活动是交互活动,back后,pop栈,即使涉及多个 ...
- 【Android】Activity的task相关
转自:http://blog.csdn.net/liuhe688/article/details/6761337 古人學問無遺力,少壯工夫老始成.紙上得來終覺淺,絕知此事要躬行.南宋.陸遊<冬夜 ...
- Activity、Task、应用和进程
2019独角兽企业重金招聘Python工程师标准>>> 为了阅读方便,将文档转成pdf http://files.cnblogs.com/franksunny/ActivityTas ...
- Activity的task相关
上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大家介绍一下.task是一个具有栈结构的容器,可以放置多个Activity实例.启动一个应用,系统就会为之 ...
- Android之adb shell dumpsys activity获取task里面的所有actitiy
android 如何在开启一个activity的时候清除所有前面的Activity intent intent = new Intent();intent.addFlag(Intent.FLAG_AC ...
- android Activity的Task Affinity lanchMode
1.Activity和Task task就好像是能包含很多activity的栈. 默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个 ...
- 基础总结篇之三:Activity的task相关
古人學問無遺力,少壯工夫老始成.紙上得來終覺淺,絕知此事要躬行.南宋.陸遊<冬夜讀書示子聿(yù)> 软件行业也是一样,多少前辈不遗余力的奋斗才出现了软件行业的繁荣的景象,其中已有不少成为 ...
- Android SDK 2.1 - Dev Guide - Best Practives - UI Guidelines - Activity and Task Design - 中文/Chinese
转自:http://blog.csdn.net/sirdonker/article/details/5647625 Activity 和 task 的设计摘要 Activity 是 Android 应 ...
- Activity、Task、Application关系+Intent启动Flag
什么是Android Application? 简单来说,一个apk文件就是一个Application. 任何一个AndroidApplication基本上是由一些Activities组成,当用户与 ...
最新文章
- sql delete删除的数据怎么恢复_如何恢复按下Shift + DELETE键永久删除的文件和资料夹?...
- Python黑科技,教你学会Django系统错误监控
- Qt Creator 创建优化的3D场景
- JVM的内存结构,Eden和Survivor比例;JVM中一次完整的GC流程,对象如何晋升到老年代,说说你知道的几种主要的JVM参数;CMS 常见参数解析;.你知道哪几种垃圾收集器,各自的优缺点
- 再有人问你volatile是什么,就把这篇文章发给他
- 周记之琢磨下计算机网络(2018/10/22-2018/10/28)
- eleemnt-ui修改主题颜色
- 我所知道的几种display:table-cell的应用
- JVM——深入分析对象的内存布局
- 勿以善小而不为--PPP认证之CHAP与PAP的实现与区别
- Java中方法与数组
- 梁宁-产品思维30讲-痛点、爽点和痒点都是产品机会
- MySQL-数据库驱动程序的下载
- 太阳的光和灯光有什么区别_太阳光和灯光有什么区别
- 碰到文件夹损坏咋解决?
- 如何将html模板资源转为vuecli项目
- 实现数字手写图片识别(纯代码)
- Mac电脑卡顿的解决办法
- 编写一个随机抽奖程序php,基于PHP实现简单的随机抽奖小程序
- minSdk(API 29) deviceSdk(API 127)
热门文章
- python详细安装教程linux-Linux手动安装新版本Python教程(CentOS)
- python语言百度百科-Python 语言下数据驱动DDT的应用
- python对excel某一列求和-96、python操作excel求和
- python主要运用于-Python的8大主要应用领域,看看哪个是你的菜?
- python百度网盘-bypy-百度网盘Python客户端 linux
- python类型-python语言中的数据类型有哪些
- python线上培训多少钱-Python人工智能在线培训班学费多少钱?
- pythonexe32位-如何使用pyinstaller打包32位的exe
- python3教程-Python3 教程
- python可以做什么 知乎-python能做什么知乎