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 匹配规则的更多相关文章
-
Android中的Intent Filter匹配规则介绍
本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家: ) 1. Intent简介 Intent用于在一个组件(Component,如Activity ...
-
Android开发——IntentFilter的匹配规则
1. IntentFilter中的过滤信息 启动Activity分为显式调用和隐式调用,前者没什么好讲的,后者需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息.包括act ...
-
【Android - 组件】之IntentFilter的匹配规则
我们知道,Activity的启动模式分为两种,分别是显式启动和隐式启动.显式启动需要明确的指定被启动的对象的组件信息,包括包名和类名:而隐式启动需要 Intent 能够匹配目标组件的 IntentFi ...
-
《Android开发艺术探索》读书笔记之IntentFillter的匹配规则
使用intent启动不同组件的方法 组件类型 启动方法 Activity startActivity(Intent intent) startActivityForResult(Intent inte ...
-
05-IntentFilter的匹配规则
IntentFilter的匹配规则 原则上一个Intent不应该既是显示调用又是隐式调用,如果二者共存的话以显式调用为主 隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过 ...
-
在JaveWeb项目中配置Spring 匿名访问时,匹配规则的变相实现/*
实现/* /** * 根据当前的URL返回该url的角色集合. * 1.如果当前的URL在匿名访问的URL集合当中时,在当前的角色中添加匿名访问的角色(SysRole.ROLE_CONFIG_ANON ...
-
Web.xml中设置Servlet和Filter时的url-pattern匹配规则
一.servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://loca ...
-
Caliburn.Micro学习笔记(一)----引导类和命名匹配规则
Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...
-
servlet的匹配规则,兼谈/与/*
客户端通过URL地址访问服务器(servlet容器)资源,所以servlet若要能对外提供服务,必须要将程序按照java规范将其映射到对应的URL上,映射的规则是需要开发人员在WEB.XML中显示指定 ...
随机推荐
-
Ajax,谷歌提示AutoCompleteExtender控件
提示内容从数据库中读取: ------------------------------------------页面 <asp:ScriptManager ID="ScriptManag ...
-
github 添加 C# IGNORE
在创建仓库时选择 VisualStudio 即可.
-
Yar - Yet Another RPC framework for PHP
Introduction Yar is a RPC framework which aims to provide a simple and easy way to do communication ...
-
[转载]大道至简!!!从SAP HANA作为SAP加速器的方式,看ERP on HANA的春天
I AM A ABAPER! 科技的进步,一定会使一些东西变得越来越精简! 大道至简!!! 文章很好!!!!!!!!!!! -------------------------------------- ...
-
ios--绘图介绍
iOS–绘图介绍 绘制图像的三种方式 一. 子类化UIView,在drawRect:方法画图 执行方法时,系统会自行创建画布(CGContext),并且讲画布推到堆栈的栈顶位置 执行完毕后,系统会执行 ...
-
Ubuntu VIM下实现python自动缩进
1.打开vimrc文件 sudo vi /usr/share/vim/vimrc 2.添加 set filetype=python au BufNewFile,BufRead *.py,*.pyw s ...
-
hydra 及相关示例
http://www.cnblogs.com/mchina/archive/2013/01/01/2840815.html https://www.thc.org/thc-hydra/ 语法 # hy ...
-
UIkit – 轻量级前端框架
原始地址:UIkit – 轻量级前端框架 高效轻量级前端框架: 来自:咕噜分享
-
MySQL锁之二:锁相关的配置参数
锁相关的配置参数: mysql> SHOW VARIABLES LIKE '%timeout%'; +-----------------------------+----------+ | Va ...
-
ggplot2 texts : Add text annotations to a graph in R software
http://www.sthda.com/english/wiki/ggplot2-texts-add-text-annotations-to-a-graph-in-r-software Instal ...