android - <activity-alias>清单标记</activity-alias>

时间:2014-06-08 23:47:15

标签: android android-activity

在Android中,&lt;的目的是什么? activity-alias&gt; ?从documentation开始,它似乎只是现有&lt;的另一个名称。活动&gt;使用意图过滤器覆盖目标活动的过滤器(到目前为止我的理解)。

它的实际用途是什么?

调用者是否可以向目标和别名发送意图?

1 个答案:

答案 0 :(得分:6)

  

它似乎只是现有&lt;的另一个名称。活动&gt;使用意图过滤器覆盖目标活动的过滤器(到目前为止我的理解)。

我将其定义为&#34;提供额外的过滤器&#34;,而不是覆盖。

  

它的实际用途是什么?

您可以停用<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;然后,是。