当前位置: 首页 > 编程日记 > 正文

activity 的属性android:taskAffinity和android:allowTaskReparenting

1.清单文件中,activity 的属性

android:allowTaskReparenting

这个属性用于设定Activity能够从启动它的任务中转移到另一个与启动它的任务有亲缘关系的任务中,转移时机是在这个有亲缘关系的任务被带到前台的时候。如果设置了true,则能够转移,如果设置了false,则这个Activity必须要保留在启动它的那个任务中。

如果这个属性没有设置,那么其对应的<application>元素的allowTaskReparenting属性值就会应用到这个Activity上。它的默认值是false

通常,当Activity被启动时,它会跟启动它的任务关联,并它的整个生命周期都会保持在那个任务中。但是当Activity的当前任务不在显示时,可以使用这个属性来强制Activity转移到与当前任务有亲缘关系的任务中。这种情况的典型应用是把应用程序的Activity转移到与这个应用程序相关联的主任务中。

例如,如果一个电子邮件消息中包含了一个网页的链接,点击这个链接会启动一个显示这个网页的Activity。但是,由e-mail任务部分启动的这个Activity是由浏览器应用程序定义的。如果把它放到浏览器的任务中,那么在浏览器下次启动到前台时,这个网页会被显示,并且在e-mail任务再次显示时,这个Activity有会消失。

Activity的亲缘关系是由taskAffinity属性定义的。通过读取任务的根Activity的亲缘关系来判断任务的亲缘关系。因此,通过定义,任务中的根Activity与任务有着相同的亲缘关系。因此带有singleTasksingleInstance启动模式的Activity只能是任务的根节点,Activity的任务归属受限于standardsingleTop模式。

经典理解:

就是说,一个activity1原来属于task1,但是如果task2启动起来的话,activity1可能不再属于task1了,转而投奔task2去了。 当然前提条件是allowTaskReparenting,还有affinity设置 有点像,你捡到一条狗,在家里喂养几天觉得不错,当自己家的了;但是突然有一天他的主人找上门来了,小狗还是乖乖和主人走了。。。

或者:

 用法
是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。
如果这个特性没有被设定,设定到元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。
一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。 例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序定义的,但是,现在它作为e-mail Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当e-mail Task再次进入前台时,就看不到它了。 Actvity的affinity是由taskAffinity特性定义的。Task的affinity是通过读取根Activity的affinity 决定。因此,根据定义,根Activity总是位于相同affinity的Task里。由于启动模式为“singleTask”和 “singleInstance”的Activity只能位于Task的底部,因此,重新宿主只能限于“standard”和“singleTop”模式。

android:alwaysRetainTaskState

这个属性用于设置Activity所属的任务状态是否始终由系统来维护。如果设置为true,则由系统来维护状态,设置为false,那么在某些情况下,系统会允许重设任务的初始状态。默认值是false。这个属性只对任务根节点的Activity有意义,其他所有的Activity都会被忽略。

通常,在某些情况中,当用户从主屏中重新启动一个任务时,系统会先清除任务(从堆栈中删除根节点Activity之上的所有Activity)。

但是,当这个属性被设置为true时,用户会始终返回到这个任务的最后状态,而不管中间经历了哪些操作。这样做是有好处的,例如,Web浏览器的应用就会保留很多用户不想丢失的状态,如多个被打开的标签页。

经典理解:

这个属性用来标记应用的task是否保持原来的状态,“true”表示总是保持,“false”表示不能够保证,默认为“false”。此属性只对task的根Activity起作用,其他的Activity都会被忽略。 默认情况下,如果一个应用在后台呆的太久例如30分钟,用户从主选单再次选择该应用时,系统就会对该应用的task进行清理,除了根Activity,其他Activity都会被清除出栈,但是如果在根Activity中设置了此属性之后,用户再次启动应用时,仍然可以看到上一次操作的界面。 这个属性对于一些应用非常有用,例如Browser应用程序,有很多状态,比如打开很多的tab,用户不想丢失这些状态,使用这个属性就极为恰当。 

android:clearTaskOnLaunch

这个属性用于设定在从主屏中重启任务时,处理根节点的Activity以外,任务中的其他所有的Activity是否要被删除。如果设置为true,那么任务根节点的Activity之上的所有Activity都要被清除,如果设置了false,就不会被清除。默认设置时false。这个属性只对启动新任务(或根Activity)的那些Activity有意义,任务中其他所有的Activity都会被忽略。

当这个属性值被设置为true,用户再次启动任务时,任务根节点的Activity就会被显示,而不管在任务的最后做了什么,也不管任务使用Back按钮,还是使用Home离开的。当这个属性被设置为false时,在某些情况中这个任务的Activity可以被清除,但不总是这样的。

例如,假设某人从主屏中启动了Activity P,并且又从P中启动了Activity Q。接下来用户按下了Home按钮,然后由返回到Activity P。通常用户会看到Activity Q,因为这是在P的任务中所做的最后的事情。但是,如果P把这个属性设置为true,那么在用户按下Home按钮,任务被挂起时,Activity P之上的所有Activity(本例中是Activity Q)都会被删除。因此当用户再次返回到本任务时,用户只能看到Activity P

如果这个属性和allowTaskReparenting属性都被设置为true,那些被设置了亲缘关系的Activity会被转移到它们共享的亲缘任务中,然后把剩下的Activity都给删除。

经典理解:

这个属性用来标记是否从task清除除根Activity之外的所有的Activity,“true”表示清除,“false”表示不清除,默认为“false”。同样,这个属性也只对根Activity起作用,其他的Activity都会被忽略。 如果设置了这个属性为“true”,每次用户重新启动这个应用时,都只会看到根Activity,task中的其他Activity都会被清除出栈。如果我们的应用中引用到了其他应用的Activity,这些Activity设置了allowTaskReparenting属性为“true”,则它们会被重新宿主到有共同affinity的task中。

android:finishOnTaskLaunch

这个属性和android:allowReparenting属性相似,不同之处在于allowReparenting属性是重新宿主到有共同affinity的task中,而finishOnTaskLaunch属性是销毁实例。如果这个属性和android:allowReparenting都设定为“true”,则这个属性好些。

android:configChanges

在Activity中添加了 android:configChanges属性,目的是当所指定属性(Configuration Changes)发生改变时,通知程序调用 onConfigurationChanged()函数。

转自:http://blog.csdn.net/ym19860303/article/details/7611120

转载于:https://www.cnblogs.com/androidxiaoyang/archive/2013/05/13/3075676.html

相关文章:

数据库内核月报 - 2017年12月

#01 MySQL 引擎特性 InnoDB 事务系统#02 MySQL 引擎特性 Innodb 锁子系统浅析#03 MySQL 特性分析 LOGICAL_CLOCK 并行复制原理及实现分析#04 PgSQL 源码分析 AutoVacuum机制之autovacuum launcher#05 MSSQL 最佳实践 SQL Server备份策略#06 MySQL 最佳实践 一个“异…

【青少年编程(第32周)】李老师太给力了!

2021年10月03日&#xff08;周日&#xff09;晚20:00我们在青少年编程竞赛交流群开展了第三十二期直播活动。我们直播活动的主要内容如下&#xff1a; 首先&#xff0c;我们奖励了上周测试超过40分的小朋友。 其次&#xff0c;我们讲解了上次测试中小朋友们做错的题目Scratch青…

mysql5.6 thread pool_mysql5.6 thread pool

从percona 的压测来看&#xff0c;确实很牛笔啊。提升很大。http://www.mysqlperformanceblog.com/2014/01/29/percona-server-thread-pool-improvements/当然&#xff0c;他指出目前mysql5.6 有2套thread pool &#xff0c;一套是mysql企业版里面的&#xff0c;另外一套是mari…

选项选择Windows XP系统安装MySQL5.5.28图解

本文纯属个人见解&#xff0c;是对前面学习的总结&#xff0c;如有描述不正确的地方还请高手指正~ Windows XP系统安装MySQL5.5.28图解 MySQL数据库的安装一共分为两个部分&#xff1a;数据库的安装和数据库的配置。 一、MySQL数据库的安装 1、双击下载的MySQL安装文件&#xf…

荣耀:想成功要敢于推翻重来

1月底&#xff0c;荣耀总裁赵明接受了吴晓波的采访。在采访中&#xff0c;赵明在谈到手机行业的未来&#xff0c;以及手机企业该如何应对时&#xff0c;说“做企业一定要有消灭自己的勇气&#xff0c;才能够在一波一波的浪潮当中活下来”。事实上&#xff0c;正是因为有着这种敢…

【组队学习】十月组队学习内容详情!(第30期)

第30期 Datawhale 组队学习活动马上就要开始啦&#xff01; 本次组队学习的内容为&#xff1a; 吃瓜教程——西瓜书南瓜书李宏毅机器学习&#xff08;含深度学习&#xff09;深入浅出Pytorch时间序列分析机器学习数学基础树模型与集成学习CV中的Transformer青少年编程&#xf…

php mysql ajax日历记事本_php+mysql+jquery日历签到

在网站开发过程中我们会经常用到签到功能来奖励用户积分&#xff0c;或者做一些其他活动。这次项目开发过程中做了日历签到&#xff0c;因为没有经验所有走了很多弯路&#xff0c;再次记录过程和步骤。1.日历签到样式&#xff1a;2.本次签到只记录本月签到数&#xff0c;想要查…

转【红帽GFS集群文件系统配置指南】

本节中将简单的介绍下RedHat的集群文件系统GFS的配置&#xff0c;集群文件系统同普通的文件系统&#xff0c;例如&#xff1a;ext3,ufs&#xff0c;ntfs不一样&#xff0c;集群文件系统采用分布式锁管理&#xff0c;可以实现多个节点同时读写文件。主流的集群文件主要有IBM的GP…

[nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI

前一篇分析了前十个基础实验的代码&#xff0c;从这里开始分析后十个~ 一、PPI原理&#xff1a; PPI(Programmable Peripheral Interconnect)&#xff0c;中文翻译为可编程外设互连。 在nRF51822 内部设置了PPI 方式&#xff0c;可以通过任务和事件让不同外设之间进行互连&…

【组队学习】【第30期】青少年编程(Scratch 三级)

小朋友们大家好&#xff0c;我是本次组队学习的领航员-马燕鹏&#xff0c;欢迎大家参加《青少年编程&#xff08;Scratch 三级&#xff09;》航海活动。 今天的开营有两大环节&#xff1a; 1、「活动介绍」介绍我们这个活动的整体设计框架。2、「规则介绍」介绍我们本次活动要…

linux resin mysql_Linux下Resin JSP MySQL的安装和配置-2

如果有,陆续(2)编辑httpd.conf# vi /usr/local/apache2/conf/httpd.conf找到ResinConfigServer localhost 6802确信其内容为:LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.soResinConfigServer 192.168.1.109 6802 //即改localhost为你的计算机的实际IPCa…

胡锐锋:组队学习分享(队长)

组队学习分享&#xff08;队长&#xff09; 自我介绍 胡锐锋&#xff0c;现为Datawhale成员&#xff0c;目前担任《统计学习方法习题解答》开源项目的负责人&#xff0c;已工作近8年&#xff0c;由大数据平台研发工程师转变成一位项目管理人。我的人生目标是让未来的孩子们少…

[转]解析字符串的方法

解析字符串的方法 char st[]”123.45ab”; 解析这一段字符串&#xff0c;有很多种方法。这里介绍一个在”stdio.h”里面的函数: sscanf(…); 如果你看了如下代码&#xff0c;应该会有所感悟&#xff1a; 1 # include "stdio.h"2 3 int main() {4 char st[]"…

SpringBoot之@EnableConfigurationProperties分析

我们在用SpringBoot进行项目开发的时候&#xff0c;基本上都使用过ConfigurationProperties这个注解&#xff0c;我们在之前的文章中也说过ConfigurationPropertiesBindingPostProcessor会对标注ConfigurationProperties注解的Bean进行属性值的配置&#xff0c;但是我们之前没有…

mysql 自动管理内存_MySQL内存管理,内存分配器和操作系统

导读作者&#xff1a;Sveta Smirnova翻译&#xff1a;郑志江校对&#xff1a;徐晨亮原文 &#xff1a;MySQL Memory Management, Memory Allocators and Operating System本文涉及链接在文末展示当用户使用任何软件(包括MySQL)碰到内存问题时&#xff0c;我们第一反应就是内存泄…

采集音频和摄像头视频并实时H264编码及AAC编码

0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi&#xff0c;再进行264编码的方法。那种方法有一些局限性&#xff0c;不适合实时性质的应用&#xff0c;如&#xff1a;视频会议、视频聊天、视频监控等。本文所使用的技术&#xff0c;适用于这种实时性的应用&…

【算法练习】校招研发工程师笔试题

请留言&#xff0c;说出你的解题思路和答案。稍后&#xff0c;我会把参考答案发到留言区。不定期整理相关的问题答案分享。 01、下面对于线性表的叙述中&#xff0c;不正确的是&#xff08;&#xff09;。 &#xff08;A&#xff09;线性表采用顺序存储时&#xff0c;必须占用…

Ubuntu安装tomcat

1.从官网中下载apache-tomcat-**.tar.gz文件 2.在本地文件新建一个文件夹&#xff08;tomcat&#xff09;&#xff0c;在文件夹中解压压缩包, 不需要使用root: tar -zxvf /home/xcx/下载/apache-tomcat-8.5.11.tar.gz 3.进入解压文件中使用命令,将tomcat中的文件全部设置添加读…

mysql 绑定参数_MySQL 使用 Perl 绑定参数和列

SQL 语句通常是动态构建的&#xff0c;用户提供一些输入&#xff0c;并将其内置到语句中。 程序员每次处理用户的输入时都必须谨慎。 它具有一些严重的安全隐患。 动态构建 SQL 语句的推荐方法是使用参数绑定。绑定参数可以防止 SQL 注入程序。 它会自动转义一些特殊字符并允许…

java入门(p1)进入java的世界

浅谈java世界&#xff08;连载中P1&#xff09; Java是一门语言&#xff0c;它并不是很难理解的东西&#xff0c;语言是来进行交流的工具&#xff0c;那么它用来跟谁来交互呢&#xff0c;所有的语言都有与其交流的对象&#xff0c;中文也好英文也罢&#xff0c;交流基本的对象应…

python __setattr__ , __getattr__

Python Class 对象或类型通过内置成员 __dict__ 来存储成员信息。 我们还可以通过重载 __getattr__ 和 __setattr__ 来拦截对成员的访问&#xff0c;需要注意的是 __getattr__ 只有在访问不存在的成员时才会被调用。转载于:https://www.cnblogs.com/Huayuan/archive/2013/05/17…

第01章 PyTorch简介和安装 的学习笔记

由于第一章&#xff0c;主要介绍Pytorch的安装&#xff0c;而自己的笔记本已经安装了CPU版本的Pytorch&#xff0c;所以第一章主要是复习了Conda的基本命令并做了5个选择题供大家练习。 课程来源&#xff1a;https://github.com/datawhalechina/thorough-pytorch 1、在Window…

python socket tcp客户端_python网络编程socketserver模块(实现TCP客户端/服务器)

摘录python核心编程socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块。通过将创建网络客户端和服务器所必须的代码封装起来&#xff0c;简化了模板&#xff0c;为你提供了各种各样的类。除了隐藏了实现细节之外&#xff0c;它督促我们使用类(面向对象的思维…

template.process(root, out)的用法(shiro项目中来的九)

假如你现在还在为自己的技术担忧&#xff0c;假如你现在想提升自己的工资&#xff0c;假如你想在职场上获得更多的话语权&#xff0c;假如你想顺利的度过35岁这个魔咒&#xff0c;假如你想体验BAT的工作环境&#xff0c;那么现在请我们一起开启提升技术之旅吧&#xff0c;详情请…

java中最常用jar包的用途说明,适合初学者

jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口&#xff0c;提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法&#xff…

【青少年编程(第33周)】Scratch(三级)公益活动开营了!

2021年10月10日&#xff08;周日&#xff09;晚20:00我们在青少年编程竞赛交流群开展了第三十三期直播活动。我们直播活动的主要内容如下&#xff1a; 首先&#xff0c;我们奖励了上周测试超过40分的小朋友。 其次&#xff0c;我们讲解了上次测试中小朋友们做错的题目Scratch青…

python函数图像绘制、函数不固定_无法在函数中绘制tkinter图像

我正在制作一个垄断游戏&#xff0c;我试图在画布上绘制图像&#xff0c;但它只有在功能不起作用的情况下才会起作用&#xff1a;def make_image(root, location, canvas):photo PhotoImage(file root)canvas.create_image(location["X"],location["Y"],…

一些与算法有关的网站

//转自&#xff1a;http://www.cnblogs.com/a180285/archive/2012/01/15/2290290.html //------------------------------------------------------------------------------------------------------------------------------------------------------------ 我在网上到处找了…

【工程基础】校招研发工程师笔试题

请留言&#xff0c;说出你的解题思路和答案。稍后&#xff0c;我会把参考答案发到留言区。不定期整理相关的问题答案分享。 1、以下代码违反了什么设计原则&#xff08;&#xff09; public class Student {public int Id;public string StudentName; }public class MClass {…

情人节学写html5微信游戏

情人节都在干什么&#xff1f;&#xff1f;&#xff1f; 当然是写代码&#xff01;&#xff01;&#xff01; 看某书正好以一个html5微信游戏&#xff0c;很适合今天的日子 附上demo&#xff1a;demo 请在手机上查看&#xff0c;pc端请切换手机调试模式&#xff0c;目前没弄完后…