- 语法:
<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 可以通过别名激活目标,以及系统如何处理别名。
例如,即使目标 activity 本身所有的过滤器都未设置
"android.intent.action.MAIN"
和"android.intent.category.LAUNCHER"
标志,别名的 intent 过滤器也可以指定这些标志,使其呈现在应用启动器中。除了
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>
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-22。
[null,null,["最后更新时间 (UTC):2024-08-22。"],[],[]]