我是靠谱客的博主 悲凉大雁,最近开发中收集的这篇文章主要介绍IntentFilter的过滤规则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.通过action测试的条件为: filter定义了intentaction如果filter没有定义action, 则这个filter将阻塞所有intent如果intent没有定义action, 那么只要filter定义了action就可以通过action测试。——即filter里可以有多个action,但必须包含 intent的action

 

2.通过category测试的条件为: Intent 中的 category 必须和filter中声明的完全匹配。如果startActivity的intent里没有category,则filter里需要加上android.intent.category.DEFAULT的category。

 

3.filter里可以有多个data,而intent 中的 data 至少要匹配filter中的一个才行。通过data测试的条件为: filter指定的datadata type和intent指定的datadatetype一致才能通过测试。

如果filter指定了data的scheme和host部分,而intent的URI不仅包含相同的scheme和host,还包含其他部分,则也能通过data匹配。这就是点击某个链接会弹出多个浏览器供选择打开的原因。

如果filter指定了data, 则intent必须要指定相匹配的data,反之亦然。

 

4.一个Activity里可以有多对<intent-filter></intent-filter> 只要匹配其中一对,即可启动这个Activity。

 

5. 如果一个<intent-filter>里同时定义了action、category和data,那么要想匹配这个<intent-filter>,必须同时通过它的action、category、data这三个匹配条件才算匹配。

最后

以上就是悲凉大雁为你收集整理的IntentFilter的过滤规则的全部内容,希望文章能够帮你解决IntentFilter的过滤规则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部