1.在AndroidManifest.xml中可以为 每个 Activity,Service 设置多个Intent-Filter;

在系统启动和程序安装之后,android会收集AndroidManifest.xml 中配置的 Intent-Filter.

每个intent-filter 从action category data三个量来过滤 intent.

  • Intent-Filter和Intent的设置规则

1.每个intent-filter对象(这里是intent-filter不是 AndroidManifest.xml中的intent-filter的子节点,Activity 节点可以没有intent-filter子节点) 可以配置 0-n个action, 1-n 个category , 0-n个data。IntentFilter 上的 data 节点上可以设置 scheme、host、port、path、mimetype

2.每个intent 可以设置 0-1个 action、0-n 个 category、0-1 个 data。Intent 上可以使用 Uri 设置 data,使用字符串设置 mimetype

3.  在安装app的时候,intent-filter节点如果没有配置category,系统不会设置某个默认的category.

   如果在隐式启动activity的时候,startactivity(intent),系统会自动为这个intent在多匹配一次"android.intent.category.DEFAULT",所以如果要能够隐式启动activity,

  必须在AndroidManifest.xml中为activity配置"android.intent.category.DEFAULT",否则无论如何都不会匹配通过的。

  • Intent-Filter和Intent的匹配规则

  匹配步骤1,action 2, data  3,category

  action和category匹配规则:

        intent中的action必须在 intent-filter中设置了的

        intent中的每一个category必须在intent-filter中设置了的。

data匹配规则

data格式:<scheme>://<host>:<port>/<path>

从前往后匹配,intent中的data只需要和intent-filter中设置的部分匹配就可以了。

     比如  intent-filter中设置 <data android:scheme="test" android:host="www.google.com"/>

那么

        Uri.parse("test://www.google.com:80"),

        Uri data = Uri.parse("test://www.google.com:88"),

Uri data = Uri.parse("test://www.google.com")

这三个都是可以匹配的。

      如果设置了mimeType ,那么intent中也要设置mimeType。

转载于:https://www.cnblogs.com/hi0xcc/p/5571761.html

Intent 匹配规则相关推荐

  1. Android值Intent匹配规则挖掘(PMS获取系统apk信息过程)

    Intent的查找与匹配 App信息表的构建 在Android开发中,Intent是极其重要的一个类,他是个个组件,进程之间通信的纽带,那么系统是如何通过Intent来查找对应的组件的呢? 在Andr ...

  2. intentfilter匹配规则

    activity的启动方式有两种:显示启动和隐式启动.显示启动很简单,也很常用.隐式启动则需要Intent能够匹配目标activity 在 IntentFilter配置的过滤信息. Intent和In ...

  3. Intent的匹配规则

    intent是android中作为启动四大组件的粘合剂,中文意思是意图.intent是某种将要执行的操作的抽象描述,它可以通过startActivity(Intent) 启动activity,send ...

  4. Java中intentfiler_【Android - 组件】之IntentFilter的匹配规则

    我们知道,Activity的启动模式分为两种,分别是显式启动和隐式启动.显式启动需要明确的指定被启动的对象的组件信息,包括包名和类名:而隐式启动需要 Intent 能够匹配目标组件的 IntentFi ...

  5. android intent-filter作用,Android中Intent-Filter的匹配规则是什么

    Android中Intent-Filter的匹配规则是什么 发布时间:2020-12-14 15:19:32 来源:亿速云 阅读:67 作者:Leah 今天就跟大家聊聊有关Android中Intent ...

  6. Android IntentFilter的匹配规则

    IntentFilter的匹配规则 IntentFilter的匹配规则 IntentFilter的匹配规则 一.Intent简介 二.IntentFilter匹配规则 1.action的匹配规则 2. ...

  7. android:mimetype 自定义,Android: Intent匹配及mimeType匹配,这一篇就够了!!

    activity的启动分为显式调用和隐式调用.显式调用需要明确指定组件的信息,来完成调用..隐式调用是通过匹配目标组件的IntentFilter完成的.一个组件可以设置多个IntentFilter来匹 ...

  8. MQTT topic匹配规则

    MQTT topic匹配规则 原文连接: https://blog.csdn.net/JiangCheng817/article/details/81333893 内容: 主题层级分隔符 " ...

  9. Nginx—核心配置location匹配规则说明

    2019独角兽企业重金招聘Python工程师标准>>> location介绍 location指令是Nginx中最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根 ...

最新文章

  1. mysql分库一个库和多个库_数据库分库后不同库之间的关联
  2. tabcontainer控件太长_AjaxControlToolKit--TabContainer控件的介绍收藏[摘录]
  3. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(设置图例位置、移除图例)实战
  4. 阿里发布2019十大科技趋势,5G仍是主要生产力
  5. 与孩子一起学编程 python_【和孩子一起学编程】 python笔记--第五天
  6. Java OkHttp3的简单使用
  7. 【POJ 2485】 Highways
  8. Raid3.0数据丢失怎么办
  9. pandas 字符串切片后保存_Pandas时间序列基础详解(转换,索引,切片)
  10. 运动会管理系统(JAVA,JSP,SERVLET,SQLSERVER)
  11. 小米登录的HTML源代码,html--登录页面(小米登录)
  12. 目标检测中的anchor-base与anchor-free
  13. 批量爬起百度图片上的数据代码--python
  14. 网络七层模型和对应协议的通俗理解
  15. 从零开始之驱动发开、linux驱动(六十六、内核调试篇--printk原理)
  16. oracle ola_访谈和书摘:Ola Bini,“实用的JRuby on Rails Web 2.0项目”
  17. 10018801骗子
  18. 缓解疲劳,闻咖啡比喝咖啡更好
  19. 实现证件照APP(一)
  20. Maven项目报错 系统找不到指定的路径 问题解决

热门文章

  1. Java实现栅格数据格式文件读取及加法操作
  2. StringBuilder 为什么线程不安全?
  3. 5 个有用的开源日志分析工具
  4. Refresh your Java skills–面对Java学习过程中的一些迷茫
  5. Spring AOP,AspectJ,CGLIB 有点晕
  6. 可能是把Docker的概念讲的最清楚的一篇文章
  7. 多线程:同步和异步的优缺点比较
  8. Nginx:安装+测试
  9. 剑指offer:扑克牌的顺子问题
  10. 数据中心基础设施:建设与设计