Intent使用和Intent过滤器
Inten可以分成显式和隐式。
- 显式Intent:组件名称来指定目标组件。
- 隐式Intent:不指定组件名称,通常用于激活其他应用程序中的组件。
Intent过滤器(IntentFilter)
功能:处理显式Intent和隐式Intent
如果组件不含有过滤器,只能接受显式Intent
在使用Intent过滤器测试Intent对象时,仅测试三个方面:Action,Data和Category
使用方法
<intent-filter>
<action android:name="";/>
<category android:name="";/>
<data android:mimeType=""
android:scheme="http:";/>
</intent-filter>
//配置文件中标签内
//例外
Context.registerReceiver();
//动态注册BroadcastReceiver
//直接创建IntentFilter对象
数据测试规则说明
Intent对象 | Intent过滤器 | 通过条件 |
---|
URI | 数据类型 | URI | 数据类型 | 通过条件 |
---|---|---|---|---|
未指定 | 未指定 | 未指定 | 未指定 | 无条件通过 |
指定 | 未指定 | 指定 | 未指定 | 两个URI匹配 |
未指定 | 指定 | 未指定 | 未指定 | 两个数据类型匹配 |
指定 | 指定 | 指定 | 指定 | URI和数据类型匹配 |
关于URI
这里单独说明URI:包括scheme(体系),host,port,path
scheme://host:port/path
例子:
content://come.example.project:200/floder
使用注意
host和port 组成URI授权
- 如果授权有效,必须指定scheme
- 如果path有效,scheme和授权必须指定。
即按次序指定,使用后面必须指定前面
可是使用通配符,如“text/”