<activity-alias>

语法
<activity-alias android:enabled=["true" | "false"]
                android:exported=["true" | "false"]
                android:icon="drawable resource"
                android:label="string resource"
                android:name="string"
                android:permission="string"
                android:targetActivity="string" >
    ...
</activity-alias>
包含在
<application>
可以包含
<intent-filter>
<meta-data>
描述
活动的别名,由targetActivity属性命名。目标必须与别名位于同一应用程序中,并在清单中声明别名之前声明。

别名将目标活动显示为一个独立的实体,并且可以拥有自己的意图过滤器集。它们,而不是目标活动本身上的意图过滤器,决定了哪些意图可以通过别名激活目标以及系统如何处理别名。

例如,别名上的意图过滤器可能会指定"android.intent.action.MAIN""android.intent.category.LAUNCHER""标志,使其在应用程序启动器中显示,即使目标活动本身上的任何过滤器都没有设置这些标志。

除了 targetActivity 之外,<activity-alias> 的属性是 <activity> 属性的子集。对于子集中的属性,目标设置的任何值都不会传递到别名。但是,对于不在子集中的属性,目标活动设置的值也适用于别名。

属性
android:enabled
系统是否可以通过此别名实例化目标活动。如果可以,则为 "true",否则为 "false"。默认值为 "true"

<application> 元素有其自己的 enabled 属性,该属性应用于所有应用程序组件,包括活动别名。要使系统能够通过别名实例化目标活动,<application><activity-alias> 属性都必须为 "true"。如果两者之一为 "false",则别名无效。

android:exported
其他应用程序的组件是否可以通过此别名启动目标活动。如果可以,则为 "true",否则为 "false"。如果为 "false",则目标活动只能通过与别名相同的应用程序或具有相同用户 ID 的应用程序的组件来启动。

默认值取决于别名是否包含意图过滤器。没有任何过滤器意味着只能通过指定别名的确切名称来通过别名调用活动。这意味着别名仅用于应用程序内部使用,因为其他应用程序不知道其名称。因此,默认值为 "false"。另一方面,至少存在一个过滤器意味着别名用于外部使用,因此默认值为 "true"

android:icon
通过别名向用户显示目标活动的图标。有关更多信息,请参阅 <activity> 元素的 icon 属性。
android:label
通过别名向用户显示别名的用户可读标签。有关更多信息,请参阅 <activity> 元素的 label 属性。

android:name
别名的唯一名称。该名称类似于完全限定的类名。但是,与目标活动的名称不同,别名名称是任意的。它不引用实际的类。

android:permission
客户端必须拥有才能启动目标活动或使用别名让其执行某些操作的权限的名称。如果 startActivity()startActivityForResult() 的调用者未授予指定的权限,则不会激活目标活动。

此属性取代为目标活动本身设置的任何权限。如果未设置,则无需权限即可通过别名激活目标。

有关权限的更多信息,请参阅应用程序清单概述中的 权限 部分。

android:targetActivity
可以通过别名激活的活动的名称。此名称必须与清单中别名前面的 <activity> 元素的 name 属性匹配。

引入于
API 级别 1
另请参阅
<activity>