<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>
说明:
Activity 的别名,由 targetActivity 属性命名。目标必须与别名在同一应用中,并且在清单中必须在别名之前进行声明。

别名将目标 Activity 呈现为独立实体。它可以具有自己的一组 Intent 过滤器,这些 Intent 过滤器(而不是目标 Activity 本身的 Intent 过滤器)决定了哪些 Intent 可以通过别名激活目标,以及系统如何处理别名。例如,别名的 Intent 过滤器可以指定“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”标志,以使其呈现在应用启动器中,即使目标 Activity 本身的任何过滤器都未设置这些标志。

除了 targetActivity 之外,<activity-alias> 属性是 <activity> 属性的子集。对于子集中的属性,为目标设置的任何值都不会沿用于别名。不过,对于不在子集中的属性,为目标 Activity 设置的值也会应用于别名。

属性:
android:enabled
系统是否可以通过此别名实例化目标 Activity。如果可以,则设为“true”;如果不能,则设为“false”。默认值为“true”。

<application> 元素具有自己的 enabled 属性,该属性适用于所有应用组件,包括 Activity 别名。<application><activity-alias> 属性必须都设为“true”,系统才能通过别名实例化目标 Activity。如果其中任一属性设为“false”,则别名不起作用。

android:exported
其他应用的组件是否可以通过此别名启动目标 Activity。如果可以,则设为“true”;如果不能,则设为“false”。如果设为“false”,则只有与别名在同一应用中的组件或具有同一用户 ID 的应用的组件可以通过别名启动目标 Activity。

默认值取决于别名是否包含 Intent 过滤器。没有任何过滤器表示只有指定别名的确切名称才能通过别名调用 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>