网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月20日
漏签
0
天
v客学院吧
关注:
57
贴子:
694
看贴
图片
吧主推荐
游戏
5
回复贴,共
1
页
<返回v客学院吧
>0< 加载中...
Android之IntentFilter匹配规则
只看楼主
收藏
回复
呆萌的夕夕
小有名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
启动Activity有两种情况,分别是显式调用和隐式调用,显式调用需要明确的指定被启动对象的组件信息,包括包名和类名,而隐式调用则不需要明确指定组件信息。原则上一个Intent不应该既是显式调用又是隐式调用,如果二者共存的话以显式调用为主。隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息,如果不匹配将无法启动目标Activity。IntentFilter中的过滤信息有action、category、data。
送TA礼物
IP属地:湖南
1楼
2016-11-01 10:04
回复
呆萌的夕夕
小有名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一个过滤列表中的action、category和data可以有多个,所有的action、category、data分别构成不同类别,同一类别的信息共同约束当前类别的匹配过程。只有一个Intent同时匹配action类别、category类别、data类别才算完全匹配,只有完全匹配才能成功启动目标Activity。另外一个Activity中可以有多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可成功启动对应的Activity,如下图所示。
IP属地:湖南
2楼
2016-11-01 10:53
回复
收起回复
湖南中福盛景国际旅行社
成都旅游攻略。刚和朋友从四川回来,必去景点攻略大全,安排的行程非常好,四川旅游攻略自由行玩的很自由,每个人才2000左右。值得每个想去四川朋友抄笔记!
2025-01-20 13:25
广告
立即查看
呆萌的夕夕
小有名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
下面详细分析各种属性的匹配规则
1、action的匹配规则
action是一个字符串,系统预定义了一些,同时我们也可以在应用中自定义。Action的匹配规则是Intent中的action必须能够和过滤器规则中的action匹配,这里说的匹配是指action的字符串值完全一样。一个过滤器规则中可以有多个action,那么只要Intent中的action能够和过滤规则中的任何一个action相同即可匹配成功。另外action区分大小写,大小写不同字符的action会匹配失败。
IP属地:湖南
3楼
2016-11-01 10:53
回复
收起回复
呆萌的夕夕
小有名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
2、category的匹配规则
category是一个字符串,系统预定义了一些,同时我们也可以在应用中自定义。category的匹配规则和action不同,它要求Intent中如果含有category,那么所有的category都必须和过滤规则中的其中一个category相同。这里要注意下它和action匹配过程中的不同,action是要求Intent中必须有一个action且必须能够和过滤规则中的某个action相同,而category要求Intent可以没有category,但是如果你一旦有category,不管几个,每个都要能够和过滤规则中的任何一个category相同。
IP属地:湖南
4楼
2016-11-01 11:17
回复
收起回复
呆萌的夕夕
小有名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
3、data的匹配规则
data的匹配规则和action类似,如果过滤规则中定义了data,那么Intent中必须也要定义可匹配的data。data的结构稍微有些复杂,语法如下所示。
IP属地:湖南
9楼
2016-11-01 13:47
回复
收起回复
呆萌的夕夕
小有名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
data由两部分组成,mimeType和URI。mimeType指媒体类型,比如image/jpeg、video/*等,可以表示图片、视频等不同的媒体格式,而URI中包含的数据就比较多了,下面是URI的结构:
<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]
这里再给几个实际的例子就比较好理解了:
content://com.example.project:200/folder/subfolder/etc
下面介绍每个数据的含义
Scheme:URI的模式,比如http、file、content等,如果未指定,则意味着URI无效。
Host:URI的主机名,比如com.example.project,如果未指定,则也意味着URI无效。
Post:URI中的端口号,比如80,仅当URI指定了scheme和host参数的时候post参数才是有意义的。
Path、pathPattern和pathPrefix:这三个参数表述路径信息,其中path表示完整路径信息;pathPattern也表示完整的路径信息,但是它里面可以包含通配符“*”,“*”表示0个或多个任意字符;pathPrefix表示路径的前缀信息。
介绍完data的数据格式后,我们来说下data的匹配规则。data的匹配规则和action类似,它也要求Intent中必须包含data数据,并且data数据能够完全匹配过滤规则中的某一个data.这里的完全匹配是指过滤规则中出现的data部分也出现在Intent中的data中。需要注意的是如果过滤规则没有指定URI,但是有却有默认值,URI的默认值为content和file.
参考资料《Android开发艺术探索》
IP属地:湖南
12楼
2016-11-01 13:49
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
TikTok恢复在美服务
2206500
2
TikTok难民真来贴吧了
1581000
3
潘宏给狗洗澡把狗洗没了
1563264
4
李维刚合成牛肉赔付已经到账
1101738
5
iG全神班惨负NIP
903315
6
原来世界上还有人卖血维生
699780
7
曝马斯克有意收购英特尔
508535
8
跪下!Doinb赛后采访爆了
469890
9
《夜魔侠:重生》首曝预告
442646
10
曼联主帅承认队伍史上最差
377312
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示