Android复习-intent-filter匹配规则
来源:互联网 发布:程序员都用什么电脑 编辑:程序博客网 时间:2024/05/29 03:05
隐式启动Activity,需要为这个Activity提供一组intent-filter进行匹配,这种隐式启动的方式往往用于启动别的App的一个Activity组件:
为一个Activity指定一组intent-filter:
<activity android:name=".Main4Activity"> <intent-filter> <action android:name="com.net.wrf"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="com.category.wrf"></category> <category android:name="com.category2.wrf"></category> <data android:scheme="file://abc" android:mimeType="image/jpeg"></data> </intent-filter> </activity>一组intent-filter有三种过滤规则,action,category,data,这三种分别有不同的匹配规则。还要注意,一组intent-filter里面这三种规则都可以有多个。
action规则:区分大小写,并且必须至少有一个。也就是说在xml中必须声明一个action,而且在intent中并且setAction或者new Intent("action"),必须两个必须是完全一样。
再值得注意的就是intent只能设置一个action,多次setAction会取最后一次,而xml中可以声明多个action,所以是这样的,关于action只要能匹配上xml中的一个就行了,但是必须至少有一个。
category :我们使用intent.addCategory来为一个intent添加category,add方法意味着我们可以添加多个,这个时候它就与action有一点不一样了,它要求,你可以不add也可以add多个,但是只要你add过,xml中就必须有对应的。什么意思呢? 比如上面的指定了三种category,而我隐式启动的时候,我可以intent.addCategory("com.category.wrf"),只添加一个,而只要添加的这个在xml中有就行了,所以没必要每个都匹配上,但是如果我再加上一个addCategory("test"),则就不行了,因为xml中没有这个test这个category。 而且注意,使用startActivity或startActivityForRestul会默认为intent添加上“android.intent.category.DEFAULT”,所以我们如果想要隐式启动一个Activity就必须在xml中声明了这个category。
data : 有scheme和mimeType两个属性,它与action一样,只要有一个能匹配上就行了,但是不是必须需要有一个,也就是可以不在xml中声明,并且不需要setDataAndType,这样也能匹配上,而action是必须有的。 scheme填写的值为URI,mimeType填写的值为媒体类型,例如image/jpeg,而且设置的时候请使用setDataAndType,不可以单独使用setData或者setType,因为他们会互相清除,setData的时候会清除type,setType的时候会清除data,而且scheme也有默认值,为file或content,所以我们为了匹配上面的data,必须intent.setDataAndType(Uri.parse("file://abc"),"image/jpeg"); 第一个参数为匹配scheme设置,第二个参数为匹配mimeType设置。 有人可能会为不指定scheme呢,不指定为默认的file或者content模式,Uri.parse("file://abc")也可以匹配上,因为file匹配上了,而对于URI,没有主机名部分,abc这一部分是无效的,所以没关系,这设计到URI规则了,不记录了。
- Android复习-intent-filter匹配规则
- Android中的Intent Filter匹配规则介绍
- Android中的Intent Filter匹配规则介绍
- Intent Filter匹配规则
- Intent Filter匹配规则
- Android中隐式Intent以及Intent-filter详解 和匹配规则
- Android Intent隐式调用之intent-filter匹配规则
- Intent-Filter的匹配规则
- Android Intent-filter匹配
- Android Intent匹配规则
- 4.Intent-filter的匹配规则
- 隐式Intent和<intent-filter>的匹配规则
- Android-->intent-filter 过滤规则的匹配 (Activity通过Uri传递参数)
- Android进阶之Intent Filter匹配规则与隐式启动Activity
- Android基础总结十一:intent-filter的action,category,data匹配规则
- 你必须弄懂的Intent Filter匹配规则
- 你必须弄懂的Intent Filter匹配规则
- intent-filter的action,category,data匹配规则
- Android 如何做到隐藏手机底部虚拟按键?
- 第一个C++程序
- C++实验报告1
- JAVA学习笔记之-继承
- DL 工作站配置
- Android复习-intent-filter匹配规则
- 自定义 Jackson 注解与禁用某一特定的注解
- Hello World 之程序人生
- Java 调用 Matlab并在Swing界面显示实例与心得总结
- [U3d][Animator]StateMachineBehaviour
- Python ping 实现(一)
- 腾讯云和腾讯云 挂载新的云磁盘
- centos 进程用户
- 使用zxing二维码