android 中一些属性的意思

android:exported

在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。如果被设置为了false,那么这个Activity将只会被当前Application或者拥有同样user ID的Application的组件调用。

exported 的默认值根据Activity中是否有intent filter 来定。没有任何的filter意味着这个Activity只有在详细的描述了他的class name后才能被唤醒 .这意味着这个Activity只能在应用内部使用,因为其它application并不知道这个class的存在。所以在这种情况下,它的默认值是false。从另一方面讲,如果Activity里面至少有一个filter的话,意味着这个Activity可以被其它应用从外部唤起,这个时候它的默认值是true。

allowTaskReparenting属性

android:allowTaskReparenting

除了launchMode可以用来调配Task,的另一属性taskAffinity,也是常常被使用。taskAffinity,是一种物以类聚的思想,

它倾向于将taskAffinity属性相同的Activity,扔进同一个Task中。不过,它的约束力,较之launchMode而言,弱了许多。

只有当中的allowTaskReparen ting设置为true,抑或是调用方将Intent的flag添加FLAG_ACTIVITY_NEW_TASK属性时才会生效。

如果有机会用到Android的Notification机制就能够知道,每一个由notification进行触发的Activity,都必须是一个设成FLAG_ACTIVITY_NEW_TASK的Intent来调用。

这时候,开发者很可能需要妥善配置taskAffinity属性,使得调用起来的Activity,能够找到组织,在同一taskAffinity的Task中进行运行。

当某个拥有相同 affinity 的任务即将返回前台时,Activity 是否能从启动时的任务转移至此任务中去 —“true”表示可以移动,

“false”表示它必须留在启动时的任务中。

通常在启动时,Activity 与启动时的任务相关联,并在整个生命周期都位于此任务中。

利用本属性可以强行让 Activity 在当前任务不再显示时归属于另一个与其 affinity 相同的任务。

典型应用是让一个应用程序的 Activity 转移到另一个应用程序关联的主任务中去。 

Activity 的 affinity 由 taskAffinity 属性定义。 任务的 affinity 由根 Activity 的 affinity 确定。 然而,根据规定,

根 Activity 总是位于 affinity 同名的任务中。 因为以“singleTask”和“singleInstance” 模式启动的 Activity 只能位于任务的根部,

所以 Activity 的重新归属仅限于“standard”和“singleTop”启动模式。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值