意图对象
意图对象是一包的信息,用于组件接收到的意图就像 Android 系统接受到的信息。
意图对象包括如下的组件,具体取决于要通信或者执行什么。
动作(Action)
这是意图对象中必须的部分,被表现为一个字符串。在广播的意图中,动作一旦发生,将会被报告。动作将很大程度上决定意图的其他部分如何被组织。Intent 类定义了一系列动作常量对应不同的意图。这里是一份Android意图标准动作 列表。
意图对象中的动作可以通过 setAction() 方法来设置,通过 getAction() 方法来读取。
数据(Data)
添加数据规格到意图过滤器。这个规格可以只是一个数据类型(如元类型属性),一条 URI ,或者同时包括数据类型和 URI 。 URI 则由不同部分的属性来指定。
这些指定 URL 格式的属性是可选的,但是也相互独立 -
- 如果意图过滤器没有指定模式,所有其他的 URI 属性将被忽略。
- 如果没有为过滤器指定主机,端口属性和所有路径属性将被忽略。
setData() 方法只能以 URI 来指定数据,setType() 只能以元类型指定数据,setDataAndType() 可以同时指定 URI 和元类型。URI 通过 getData() 读取,类型通过 getType() 读取。
以下是动作/数据组的一些实例 -
序号 | 动作/数据组和描述 |
---|---|
1 | ACTION_VIEW content://contacts/people/1:显示ID为1的用户的信息。 |
2 | ACTION_DIAL content://contacts/people/1:显示电话拨号器,并填充用户1的数据。 |
3 | ACTION_VIEW tel:123:显示电话拨号器,并填充给定的号码。 |
4 | ACTION_DIAL tel:123:显示电话拨号器,并填充给定的号码。 |
5 | ACTION_EDIT content://contacts/people/1:编辑ID为1的用户信息。 |
6 | ACTION_VIEW content://contacts/people/:显示用户列表,以便查看。 |
7 | ACTION_SET_WALLPAPER:显示选择壁纸设置。 |
8 | ACTION_SYNC:同步数据,默认的值为:android.intent.action.SYNC |
9 | ACTION_SYSTEM_TUTORIAL:开启平台定义的教程(默认教程或者启动教程) |
10 | ACTION_TIMEZONE_CHANGED:当时区被改变时通知 |
11 | ACTION_UNINSTALL_PACKAGE:运行默认的卸载器 |
类别
类别是意图中可选的部分,是一个字符串,包含该类型组件需要处理的意图的附加信息。addCategory() 方法为意图对象添加类别,removeCategory() 方法删除之前添加的类别,getCategories() 获取所有被设置到意图对象中的类别。这里是Android意图标准类别列表。
可以查看下面章节中的意图过滤器来了解我们如何使用类别来通过对应的意图选择合适的活动。
附加数据
这是传递给需要处理意图的组件的以键值对描述的附加信息。通过 putExtras() 方法设置,getExtras() 方法读取。这里是Android意图标准附加数据列表。