Android Intent Filter应用方式讲解

移动开发 Android
我们今天将会针对Android Intent Filter这一应用进行一个详细的介绍,以帮助大家加深对这一手机操作系统的认识。

Android手机操作系统已经推出就伸手广大用户的青睐,比且多家主流手机生产商都采用这一系统应用于他们的智能手机中。在这里我们就先从Android Intent Filter的相关介绍中来对这一系统进行一个详尽的了解。#t#

匿名性质的运行时绑定使得理解Android如何解析一个隐式Intent到一个特定的应用程序组件变得重要。

 

和你之前看到的一样,当使用startActivity时,隐式Intent解析到一个单一的Activity。如果存在多个Activity都有能力在特定的数据上执行给定的动作的话,Android会从这些中选择***的进行启动。

 

决定哪个Activity来运行的过程称为Intent解析。Intent解析的目的是通过下面的过程找到可能匹配得***的Android Intent Filter:

 

1. Android把安装的包中可获得的Intent Filter放到一个列表中。

 

2. 动作和与正在解析的Intent的种类不关联的Intent Filter会从列表中删除。

 

2.1. 动作匹配指Android Intent Filter包含特定的动作或没有指定的动作。一个Intent Filter有一个或多个定义的动作,如果没有任何一个能与Intent指定的动作匹配的话,这个Intent Filter在算作是动作匹配检查失败。

 

2.2. 种类匹配更为严格。Intent Filter必须包含所有在解析的Intent中定义的种类。一个没有特定种类的Intent Filter只能与没有种类的Intent匹配。

 

3. ***,Intent的数据URI中的部分会与Intent Filter中的data标签比较。如果Intent Filter定义scheme,host/authority,path或mimetype,这些值都会与Intent的URI比较。任何不匹配都会导致Intent Filter从列表中删除。

 

没有指定data值的Android Intent Filter会和所有的Intent数据匹配。

 

3.1. mimetype是正在匹配的数据的数据类型。当匹配数据类型时,你可以使用通配符来匹配子类型(例如,earthquakes/*)。如果Intent Filter指定一个数据类型,它必须与Intent匹配;没有指定数据的话全部匹配。

 

3.2. scheme是URI部分的协议——例如,http:,mailto:,tel:。

 

3.3. host-name或“data authority”是介于URI中scheme和path之间的部分(例如,www.google.com)。匹配主机名时,Intent Filter的scheme也必须通过匹配。

 

3.4. 数据path是紧接在“data authority”的后面(例如,/ig)。path只在scheme和host-name部分都匹配的情况下才匹配。

 

4. 如果这个过程中多于一个组件解析出来的话,它们会以优先度来排序,可以在Android Intent Filter的节点里添加一个可选的标签。***等级的组件会返回。

 

Android本地的应用程序组件和第三方应用程序一样,都是Intent解析过程中的一部分。它们没有更高的优先度,可以被新的Activity完全的代替,这些新的Activity宣告自己的Intent Filter能响应相同的动作请求。

责任编辑:曹凯 来源: 博客园
相关推荐

2014-07-15 10:16:02

AndroidIntent

2009-04-03 08:21:37

AndroidGoogle移动OS

2013-01-10 14:54:48

Android开发组件Intent

2013-01-10 15:36:44

Android开发组件Intent

2013-05-27 14:06:14

Android开发移动开发Intent机制

2010-08-18 10:13:55

IntentAndroid

2012-07-23 13:22:42

Intent Filt安全Android

2010-01-25 13:45:04

Android单选框

2010-01-25 14:25:33

Android Int

2013-03-28 09:07:37

Android开发Intent机制

2010-01-26 09:27:47

Android列表框

2009-04-03 08:26:02

2010-02-04 17:49:04

C++参数传递

2010-01-25 13:29:53

Android本地应用

2010-01-26 10:52:01

Android绘图

2010-02-07 10:40:55

Android Int

2010-01-27 18:19:13

Android画图

2010-09-25 12:46:10

DHCP运行方式

2016-12-13 22:38:40

2010-01-27 14:24:28

Android界面互调
点赞
收藏

51CTO技术栈公众号