在Android中,<的目的是什么? activity-alias> ?从documentation开始,它似乎只是现有<的另一个名称。活动>使用意图过滤器覆盖目标活动的过滤器(到目前为止我的理解)。
它的实际用途是什么?
调用者是否可以向目标和别名发送意图?
答案 0 :(得分:6)
它似乎只是现有<的另一个名称。活动>使用意图过滤器覆盖目标活动的过滤器(到目前为止我的理解)。
我将其定义为"提供额外的过滤器",而不是覆盖。
它的实际用途是什么?
您可以停用<activity-alias>
等组件。您无法禁用<intent-filter>
元素(尽管这非常方便)。
因此,如果您希望活动始终可用,但只有某些时间提供特定过滤器(或过滤器),<activity-alias>
适用于你。
现代的一个例子是新的存储访问框架。以前,为了将文档提供给第三方应用,您可以实施ACTION_GET_CONTENT
活动,其中包含<intent-filter>
广告相关的MIME类型(以及可能的ContentProvider
路径你的提供者)。但是,如果您在Android 4.4及更高版本上采用存储访问框架,则不希望也可以使用ACTION_GET_CONTENT
活动 - 净影响是您的所有内容会出现两次。因此,在Android 4.4及更高版本的设备上,您需要停用整个活动(如果您不需要其他任何内容),或者将ACTION_GET_CONTENT
<intent-filter>
移至<activity-alias>
,你可以单独禁用它。这在the documentation中有更详细的介绍。
TL; DR:我怀疑许多开发人员使用<activity-alias>
,虽然它有其用例(例如,在您的问题的评论中引用的启动器)。
调用者是否可以向目标和别名发送意图?
嗯,如果那样,你的意思是&#34;我可以用startActivity()
来启动活动或别名吗?&#34;然后,是。