Intent概述

​ •Intent是Android的核心组件,利用消息实现应用程序间的交互机制,这种消息描述了应用中一次操作的动作、数据以及附加数据,系统通过该Intent的描述负责找到对应的组件,并将Intent传递给调用的组件,完成组件的调用。

​ •Intent由动作、数据、分类、类型、组件和扩展信息等内容组成,每个组成都由相应的属性进行表示,并提供设置和获取相应属性的方法。

组成 属性 设置属性方法 获取属性方法
动作 Action setAction() getAction()
数据 Data setData() getData()
分类 Category addCategory() getCategories()
类型 Type setType() getType()
组件 Component setComponent() setClass() setClassName() getComponent()
扩展信息 Extra putExtra**()** getXXXExtra()获取不同数据类型的数据,如int类型则使用getIntExtra(),字符串则使用getStringExtra() getExtras()获取Bundle包

Action属性

​ •Action属性用于描述Intent要完成的动作,对要执行的动作进行一个简要描述。Intent类定义了一系列Action属性常量,用来标识一套标准动作,如ACTION_CALL(打电话)、ACTION_EDIT(编辑)等。

​ • Action属性常量

Action****常量 行为描述 使用组件(分类)
ACTION_CALL 打电话,即直接呼叫Data中所带电话号码 Activity
ACTION_ANSWER 接听来电
ACTION_SEND 由用户指定发送方式进行数据发送操作
ACTION_SENDTO 根据不同的Data类型,通过对应的软件发送数据
ACTION_VIEW 根据不同的Data类型,通过对应的软件显示数据
ACTION_EDIT 显示可编辑的数据
ACTION_MAIN 应用程序的入口
ACTION_SYNC 同步服务器与移动设备之间的数据
ACTION_BATTERY_LOW 警告设备电量低 Broadcast
ACTION_HEADSET_PLUG 插入或者拔出耳机
ACTION_SCREEN_ON 打开移动设备屏幕
ACTION_TIMEZONE_CHANGED 移动设备时区发生变化

Data属性

​ •Intent的Data属性是执行动作的URI和MIME类型

​ •Data属性常量

Data属性 说明 示例
tel:// 号码数据格式,后跟电话号码 tel://123
mailto:// 邮件数据格式,后跟邮件收件人地址 mailto://dh@163.com
smsto:// 短息数据格式,后跟短信接收号码 smsto://123
content:// 内容数据格式,后跟需要读取的内容 content://contacts/people/1
file:// 文件数据格式,后跟文件路径 file://sdcard/mymusic.mp3
geo://latitude,longitude 经纬数据格式,在地图上显示经纬度所指定的位置 geo://180,65

​ •Action和Data一般匹配使用,不同的Action由不同的Data数据指定

Action属性 Data属性 描述
ACTION_VIEW content://contacts/people/1 显示_id为1的联系人信息
ACTION_EDIT content://contacts/people/1 编辑_id为1的联系人信息
ACTION_VIEW tel:123 显示电话为123的联系人信息
ACTION_VIEW http://www.google.com 在浏览器中浏览该网页
ACTION_VIEW file:///sdcard/mymusic.mp3 播放MP3

Category属性

​ •Category属性指明一个执行Action的分类

​ •Intent中定义了一系列Category属性常量

Category****属性 说明
CATEGORY_DEFAULT 默认的执行方式,按照普通Activity的执行方式执行
CATEGORY_HOME 该组件为Home Activity
CATEGORY_LAUNCHER 优先级最高的Activity,通常为入口ACTION_MAIN配合使用
CATEGORY_BROWSABLE 可以使用浏览器启动
CATEGORY_GADGET 可以内嵌到另外的Activity中