我是靠谱客的博主 精明画板,最近开发中收集的这篇文章主要介绍<>读书笔记--IntentFilter,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于IntentFilter的知识,书上和网上都有很多了,这里只简单总结一下。

IntentFilter由三部分组成:action、category、data。
action匹配规则:
intent中action至多只有一个,该action应该在IntentFilter的action中能找到。
(即IntentFilter的action为action1和action2,intent的action为action1可匹配成功)
              
intent的action为null时,与所有action匹配
category匹配规则:intent中category可以有多个,这些category应该在IntentFilter的category中能找到,
但允许IntentFilter有其他更多category
                 intent的category理论上不为null,因为android系统会加上“android.intent.category.DEFAULT"
data匹配规则:
intent-filter中的data在intent中都能符合条件。未指定data时,intent中所有data都算匹配
很坑的2个地方:
1. intent的category理论上不为null,因为android系统会加上“android.intent.category.DEFAULT"(很多书上和博客都有提到)
2. intentFilter中必须有action,否则任何隐式匹配失效!
举个例子,如果intentFilter的category包含"android.intent.category.DEFAULT"和"afunx.intent.category"。
隐式启动Intent时,addCategory("afunx.intent.category”),但此时IntentFilter是无法匹配成功,除非任意增加一个action
小技巧:
1. 很多地方都说每个android app的入口activity都必须要这个action:"android.intent.action.MAIN"和
这个category:"android.intent.category.LAUNCHER"但并未深入讲解。LAUNCHER会在android桌面显示出一个图标。
MAIN就是入口Activity的意思。如果你想要当用户点击"video/mpeg"类型的文件时,可以打开你的应用,除了需要添加相应的data外,
还需要添加MAIN,否则不能完成该功能。
2. android系统源码中的app应用,不少一个activity都包含多个IntentFilter,这样一个Activity可以响应更多的隐式启动。

最后

以上就是精明画板为你收集整理的<>读书笔记--IntentFilter的全部内容,希望文章能够帮你解决<>读书笔记--IntentFilter所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部