activity alias又是什么鬼

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mattdong0106/article/details/51036794

目前网上关于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>

说明

为目标Activity 属性命名的 Activity 指定别名,在清单文件中,目标Activity必须和别名Activity在同一个Application中,而且必须在别名Activity声明之前声明。
别名Activity 将目标Activity 表示为一个独立的实体,它可以设置自己的Intent过滤器,而不是目标Activity 的intent过滤器。这些过滤器可以决定哪些 Intent 能通过别名来激活目标 Activity,并且决定系统如何处理别名。例如,别名activity的intent过滤器可以指定”android.intent.action.MAIN” 和”android.intent.category.LAUNCHER”标记,使之能被application启动器识别,尽管目标Activity并没有Intent过滤器来设置这些标记。
除了目标Activity以外,\的属性也是\属性的子集,对于该子集中已有的属性,目标Activity设置的值不会覆盖别名Activity里的值,但是对于子集中没有的属性,目标Activity设置的值同时也适用于别名Activity。

属性

【android:enabled】
系统能否用别名实例化目标activity,true代表可以,false代表不可以,默认为true。

<application>元素有它子集的enable属性,它适用于<application>中的所有应用程序组件,包括别名activity,<application>和<activity-alias>中的enable属性必须都是true,系统才能通过别名实例化目标activity,如果两个中有一个为false,别名就不起作用。

【android:exported】
其它应用程序的组件能否用别名来启动目标 Activity —“true”表示可以,“false”表示不可以。如果是“false”,那么只有和别名在同一个    application中或userID相同的应用组件才可以通过别名来启动目标activity。

默认值取决于别名是否包含intent过滤器。不包含任何过滤器意味着必须通过指定精确的别名来启动activity。这意味着别名仅供程序内部使用(因为其他程序不知道它完整的名字),这时候默认值为“false”,反之,只要有一个以上的过滤器存在,别名就可以被外部使用,这时候默认值就是“true”。

【android:icon】

用别名访问目标activity时用户看到的图标

【android:label】

用别名访问目标activity时用户看到的文本标签

【android:name】

别名的唯一名称。该类名应该使用类似于类的完全限定名称的格式,但是跟目标activity不同的是,别名的名称可以随意指定,因为他不代表一个实际的类。

【android:permission】

通过别名启动目标 Activity 或让它执行工作的客户端所必须拥有的权限名称。如果startActivity()或startActivityForResult()的调用者没有被授权,那么目标activity就不会被启动。

该属性将替代目标activity设置的权限,如果没有设置该属性,则说明可以不需要权限就可以通过别名启动目标activity。

【android:targetActivity】

通过别名可以启动的activity的名字。该名称必须与 manifest 文件中已定义的 < activity > 元素的 name 属性相一致。

参考链接:http://developer.android.com/intl/zh-cn/guide/topics/manifest/activity-alias-element.html

猜你喜欢

转载自blog.csdn.net/mattdong0106/article/details/51036794