<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
其他应用的组件是否可以通过此别名启动目标 Activity。如果可以,则为"true";如果不可以,则为"false"。如果为"false",则只有与别名属于同一应用的组件或具有相同用户 ID 的应用才能通过别名启动目标 Activity。

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

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

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

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

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

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

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

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