Android IntentFilter匹配规则

#.IntentFilter匹配规则

<intent-filter>

    <action ….. />

    <category ….. />

    <data ….. />

</intent-filter>

AndroidManifest.xml中

1.Activity的的声明区域中,可以包含多个<intent-filter>;

   一个<intent-filter>中可以包含多个action、category、data, 它们有多种组合方式,一个隐式Intent只要匹配其中任意一种组合方式,即匹配了相应的Activity。

2.对于隐式Intent,系统会根据Intent中设置的action/category/data组合,来找出IntentFilter相匹配的Activity集合。犹如你发布了一个招人任务,指明了各项能力需求,hr会帮你找到各项能力都匹配的候选人群。

3.具体匹配规则为,

对于action/data,若Intent手动设置了action/data,则匹配的IntentFilter必须包含此项action/data;若Intent未设置action/data,则匹配的IntentFilter必须未声明任何action/data。

对于category,若Intent手动设置了category,则匹配的IntentFilter必须包含此项category;若Intent未手动设置category, Intent会自动添加android.intnent.category.DEFAULT类型的category,则匹配的IntentFilter必须携带该类型的category才行。

4.Data是指Action对应的数据,它整体由mimeType和URI(统一资源定位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值