android--Manifest文件中allowTaskReparenting属性的含义

最近在仔细的阅读安卓的官方文档,说到manifest文件时,有个属性allowTaskReparenting一直看不明白,原文在这:allowTaskReparenting ,英文理解能力强的朋友可以读一下然后给我解释解释哈。

针对这个属性的含义,上网查了一些中文资料,品味了半天,总算是能理解一点了,但是不一定正确,希望大牛们多指正。

allowTaskReparenting的官方定义是“Whether or not the activity can move from the task that started it to the task it has an affinity for when that task is next brought to the front — "true" if it can move, and "false" if it must remain with the task where it started.”简单翻译就是是否允许该Activity从启动他的任务(可以理解为activity栈)转移到与他有亲密关系(affinity)的任务中,当有亲密关系的任务再次启动时。干看这句话我是没懂什么意思,后来看到一个帖子的解释,稍微明白了一点。就用官方提供的那个例子来说,一个邮件应用,当收到的邮件内容中包含一个链接地址时,用户点击这个链接会调用browser应用的一个activityB去显示。但是下次browser应用再显示时,这个activityB还存在,而下次再显示邮件应用时,activityB就不在其中了。是因为browser和activityB有相同的affinity,所以从邮件应用的任务中(这里要解释一下,如果是系统的browser APP,那么显示网页内容的activityB将分配一个新的任务栈,因为他配置launchmode是singletask)转回到了browser应用的任务中去。如果activityB的allowTaskReparenting属性设置为false,那么当browser启动时,它就不会回到browser的任务中,而是一直呆在邮件应用的任务中。

以上是我的理解,不知道是不是正确,请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值