一:显示Intent
我相信显示Intent大家已经使用的非常熟练了,此处不再过多阐述。

 button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this,FirstActivity.class);                startActivity(intent);            }        });

我们先讲IntentFilter匹配规则然后在讲隐式Intent,会比较容易理解。
二:IntentFilter匹配规则
IntentFilter中的过滤信息包括action,category,data
如有要匹配过滤列表,就要同时匹配过滤列表中的action,category,data信息,否则匹配失败。一个Activity可以存在多组IntentFilter,只要Intent匹配其中一组即可,一组IntentFilter也可以存在多个action,category,data
1.action匹配规则
action是一个字符串,系统有预定义的,我们也可以自己定义。
匹配规则:一组IntentFilter可以有多个action,只要Intent中的action与IntentFilter中的任一一个action匹配成功,则成功,匹配成功是指字符串相同。字符串区分大小写,如果Intent没有指定action也会匹配失败

2.category匹配规则
category是一个字符串,系统有预定义的,我们也可以自己定义。
Intent可以不指定category也会匹配成功,因为系统会在调用startActivity的时候默认为Intent加上android.intent.category.DEFAULT,但如果Intent指定了category就必须和IntentFilter中的category匹配,否则匹配失败

3.data匹配规则
data的构成由mimeType和URI组成。
mimeType指媒体类型,比如图片,视频,音频等
URI结构如下:

://:/[ |  | ]

scheme:URI的模式,比如http,file等,如果没有指定scheme,则URI的参数无效,也就是URI无效。
host:URI的主机名,如果没有指定host,则URI的参数无效,也就是URI无效。
port:端口号,只有scheme和host存在且合理,Port才有意义
path:完整路径
pathPrefix:路径的前缀信息
pathPattern:完整路径,可含通配符
匹配规则:
Intent必须指定data,而且必须与IntentFilter中的任意一个data匹配成功,才有意义。
如果我们单独指定了mimeType,不知道URI也能匹配成功,因为URI的默认值为content和file

三:隐式Intent
隐式Intent需要明确指点组件信息。隐式Intent需要匹配IntentFilter中设置的过滤信息
我们首先在清单文件中自定义action和categroy(记住可以自定义没意义的action和categroy,只要和Intent匹配就可以)

                                                                            

然后我们在ManActivity中隐式Intent

 button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent("com.example.implicit.Activity");                intent.addCategory("com.example.implicit.FirstActivity");                startActivity(intent);            }        });

预定义Action和Category属性值
Action和category的值可以自定义,Android系统也提供了许多预定义的常量值,用于启动系统预定义的Activity、Service。
下面我们介绍一些预定义的指

Action常量            对应的字符串                    说明ACTION_MIAN    android.intent.action.MAIN        应用程序入口  ACTION_VIEW    android.intent.action.VIEW        显示指定数据ACTION_EDIT    android.intent.action.EDIT        编辑指定数据ACTION_DIAL    android.intent.action.DIAL        显示拨号面板ACTION_CALL    android.intent.action.CALL        向指定用户打电话ACTION_SEND    android.intent.action.SEND        向其他人发送数据ACTION_SENDTO  android.intent.action.MESSAGE     向其他人发送消息ACTION_ANSWER  android.intent.action.ANSWER        应答电话ACTION_INSERT  android.intent.action.INSERT        插入数据ACTION_DELETE  android.intent.action.DELETE        删除数据ACTION_RUN     android.intent.action.RUN           运行数据ACTION_SYNC    android.intent.action.SYNC          用户数据同步ACTION_PICK_ACTIVITY android.intent.action.PICK_ACTIVITY  选择ActivityACTION_SEARCH  android.intent.action.SEARCH        执行搜索ACTION_WEB_SEARCH android.intent.action.WEB_SEARCH 执行Web搜索Intent类中与Category相关的常量值列表Category            常量对应的字符串                           说明CATEGORY_DEFAULT    android.intent.category.DEFAULT           默认的CategoryCATEGORY_TAB        android.intent.category.TAB指定Activity   作为TabActivity的Tab页CATEGORY_LAUNCHER   android.intent.category.LAUNCHERActivity  显示在顶级程序列表中CATEGORY_INFO       android.intent.category.INFO              用于提供包信息CATEGORY_HOMEandroid.intent.category.HOME设置该Activity随系统启动而运行CATEGORY_PREFERENCE android.intent.category.PREFERENCE       设置Activity是参数面板

更多相关文章

  1. 如何解决Android的SDK与ADT不匹配问题
  2. android webservices sax 传输并解析xml
  3. android button属性
  4. Android(安卓)应用指定浏览器开发实例
  5. Android中RelativeLayout相关属性
  6. Android开发中XML布局的常用属性说明
  7. Android下 布局加边框 指定背景色 半透明
  8. Maven Android(安卓)Plugin
  9. Android(安卓)Studio 4.0 新功能之 AndroidKotlin Live Template

随机推荐

  1. [置顶] Android内核和驱动篇-Android内核
  2. AndroidStudio 报 Error:Execution faile
  3. Android studio 中NDK的配置和JNI实现的
  4. Android 原生获取地理位置
  5. Android多媒体开发(5)————利用Android
  6. 联发科智能机战略转投Android 加速其规范
  7. android之单选框
  8. 1、What Makes an Android Application?
  9. 谁说Android的动画不廉价(二)之转场动画
  10. Android 4.0 x86安装教程 附带联网参数详