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。

Intent 匹配规则的更多相关文章

  1. Android中的Intent Filter匹配规则介绍

    本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家: ) 1. Intent简介 Intent用于在一个组件(Component,如Activity ...

  2. Android开发——IntentFilter的匹配规则

    1.  IntentFilter中的过滤信息 启动Activity分为显式调用和隐式调用,前者没什么好讲的,后者需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息.包括act ...

  3. 【Android - 组件】之IntentFilter的匹配规则

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

  4. 《Android开发艺术探索》读书笔记之IntentFillter的匹配规则

    使用intent启动不同组件的方法 组件类型 启动方法 Activity startActivity(Intent intent) startActivityForResult(Intent inte ...

  5. 05-IntentFilter的匹配规则

    IntentFilter的匹配规则 原则上一个Intent不应该既是显示调用又是隐式调用,如果二者共存的话以显式调用为主 隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过 ...

  6. 在JaveWeb项目中配置Spring 匿名访问时,匹配规则的变相实现/*

    实现/* /** * 根据当前的URL返回该url的角色集合. * 1.如果当前的URL在匿名访问的URL集合当中时,在当前的角色中添加匿名访问的角色(SysRole.ROLE_CONFIG_ANON ...

  7. Web.xml中设置Servlet和Filter时的url-pattern匹配规则

    一.servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://loca ...

  8. Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

    Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...

  9. servlet的匹配规则,兼谈/与/*

    客户端通过URL地址访问服务器(servlet容器)资源,所以servlet若要能对外提供服务,必须要将程序按照java规范将其映射到对应的URL上,映射的规则是需要开发人员在WEB.XML中显示指定 ...

随机推荐

  1. springmvc+mybatis用多选框批量删除的功能Java代码

    今天写了一个批量删除的功能,在后台传值过程中一直出错,最终还是请教了北京的一位高手帮我解决的,在此首先要好好感谢他,以后我有幸能帮助别人的话,决不推辞. 废话不说,直接进入正题,我会将在编写过程中出现 ...

  2. 20145334 第五次 java 实验报告

    实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 我和20145306张文锦组队编程 http://www.cnblogs.com/besti145306/ ...

  3. Web前端开发基础 第四课(CSS小技巧1)

    垂直居中-父元素高度确定的单行文本 父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的.如下代码: <div class=&q ...

  4. 最实用的IT类网站及工具大集合[转]

    1.聚合数据 大家在开发过程中,可能会用到各种各样的数据,想找一些接口来提供一些数据.比如天气预报查询,火车时刻表查询,彩票查询,身份证查询等等.有了这个接口,直接调用即可.各种各样的API接口满足你 ...

  5. AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    在使用SqlConnection.Open()连接到SQL Server 2008 R2 SP2时,一直报以下异常: AccessViolationException: 尝试读取或写入受保护的内存.这 ...

  6. ExtJS笔记 Tree

    The Tree Panel Component is one of the most versatile Components in Ext JS and is an excellent tool ...

  7. controlling the variance of request response times and not just worrying about maximizing queries per second

    http://highscalability.com/blog/2010/11/4/facebook-at-13-million-queries-per-second-recommends-minim ...

  8. mybatis 分页

    http://www.cnblogs.com/xiaoxinwt/p/5329840.html

  9. Linux内核设计第二周——操作系统工作原理

    Linux内核设计第二周 ——操作系统工作原理 作者:宋宸宁(20135315) 一.实验过程 图1 执行效果 从图中可以看出,每执行my_ start_ kernel函数两次或一次,my_ time ...

  10. angularJs实现信息数据提交功能

    如下简单的报名提交的实现 1.数据绑定 2.$http.post()提交数据 一.数据绑定 <!--报名部分--> <div class="attend_box" ...