Intent的基础与提升
来源:互联网 发布:painter for mac 2018 编辑:程序博客网 时间:2024/06/15 03:42
Intent的基础与提升
要重新巩固一下Intent的知识了。首先在xml的配置中,我们都能看到:(android:intent.action.MAIN)它是决定这个activity时应用程序最先启动的activity。(android.intent.category.LAUNCHER)它是决定应用程序是否显示在程序列表里。
目录
- Intent的基础与提升
- 目录
- Intent
- ComponentName
- Action
- Category
- Extra
- IntentFilter
- 检查Action
- 检查Data
- 检查Category
- Intent
- 目录
Intent
Intent代表了Android应用的启动”意图”,Android系统会根据Intent的setClass()方法的第二个参数来指定即将启动的目标组件(博主主要就是用Intent构造方法直接传递参数来跳转Activity)。 Intent由ComponentName,Action,Data,Category,Extra及Flag共六个部分组成,通过调用setXXX()方法来设置对应的属性。
ComponentName
ComponentName对象用于标示唯一的应用程序组件。当指定它时,便是显式的Intent消息(之上的setClass和博主用构造方法直接跳转的都是显式的Intent消息);不指定它时,就是隐式的Intent消息,以及会通过IntentFilter指定的过滤条件选择相应的组件。
Action
Action实际上就是描述了Intent所出发动作的名称的字符串。开发人员可以自定义Action。当使用系统定义的Aciton时,常常需要伴随Data来和Action组合,调用系统的Activity。 (3)Data
Data主要对Intent消息中的数据进行封装,并描述Intent的Action所操作的数据的通用资源标识符(URI)及类型。不同类型的Action会用不同的Data封装。正确的Data封装对Intent匹配请求而言同样重要。
Category
Category是对目标组件类信息的描述,同样为一个字符串对象。一个Intent中可以包含多个Category。
Extra
Extra中封装了一些附加信息,这些信息以键值对的形式存在。Intent可以通过putExtras()和getExtras()方法来存储和获取Extra。 (6)Flag 一些有关系统如何启动组件的标志位,但一般不回使用。
IntentFilter
IntentFilter描述一个多组件愿意接收什么样的Intent对象。
IntentFilter匹配过程:检查Action-》检查Data-》检查Category-》成功跳转,失败抛出异常
检查Action
一个Intent只能由一个Action,一个IntentFilter可以设置多个Action过滤。Intent只要满足一个Action几个完成Action验证。当IntentFilter没有Action,Intent任何Action都不能与之匹配。而如果Intent中没有任何Action,那么只要IntentFilter中含有Action便会匹配成功。
检查Data
数据的监测主要包含数据URI和数据类型两个部分。只有全部匹配,才能检验通过。
检查Category
一个IntentFilter同样可以设置多个Category。当Intent中的Category与IntentFilter中的某个Category完全匹配时,便会通过检查,且其他Category不受影响。当IntentFilter没有设置Category时(default默认值),只能与没有设置Category的Intent相匹配。
- Intent的基础与提升
- 1,Intent的基础用法
- Android的Intent与Intent Filter使用
- 经典SQL语句大全 (基础与提升)
- Android基础之Activity与Intent
- android开发基础:Intent与Bundle的使用,实现页面跳转及信息传递
- 【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析
- Android基础(一):四大组件与另一个重要组件Intent的简单认识
- Intent与PendingIntent的区别
- Intent与PendingIntent的区别
- Intent的设想与天马行空
- PendingIntent与Intent的区别
- Intent与PendingIntent的区别
- Intent与pending的区别
- PendingIntent与Intent的区别
- activity与intent的关系
- Intent与IntentFilter的区别
- Intent 与 PendingIntent 的区别
- 类 SimpleDateFormat时间格式
- linux centosf7ssh 连接乱码解决
- To_Date函数用法(转)
- 线性表_栈_逆波兰计算式(Reverse Polish Notation)
- C++引用详解
- Intent的基础与提升
- MongoDB入门(一)
- 删除分区表中重复记录中的异常记录
- C语言中的逗号运算符
- php代码生成器
- C++(5)/友元
- 部署服务器出现 java.nio.charset.MalformedInputException: Input length = 2
- 查看mysql数据库空间使用情况
- eclipse创建JavaWeb程序