Intent 详解
一、
Intent 作用
Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由 Intent
来 协 助 完 成
android 各 个 组 件 之 间 的 通 讯 。 比 如 说 调 用 startActivity() 来 启 动 一 个
activity,或者由 broadcaseIntent()来传递给所有感兴趣的 BroadcaseReceiver, 再或者
由
startService()/bindservice()来启动一个后台的 service.所以可以看出来,intent 主
要是用来启动其他的
activity 或者 service,所以可以将 intent 理解成 activity 之间的粘
合剂。
二、
Intent 的构成
要在不同的
activity 之间传递数据,就要在 intent 中包含相应的东西,一般来说数据中最
基本的应该包括:
Action 用来指明要实施的动作是什么,比如说 ACTION_VIEW, ACTION_EDIT 等。
具体的可以查阅
android SDK-> reference 中的 Android.content.intent 类,里面的
constants 中定义了所有的 action。
Data 要事实的具体的数据,一般由一个 Uri 变量来表示
下面是一些简单的例子:
ACTION_VIEW content://contacts/1 //显示 identifier 为 1 的联系人的信息。
ACTION_DIAL content://contacts/1 //给这个联系人打电话
除了
Action 和 data 这两个最基本的元素外,intent 还包括一些其他的元素,
Category(类别): 这个选项指定了将要执行的这个 action 的其他一些额外的信
息,例如
LAUNCHER_CATEGORY 表示 Intent 的接受者应该在 Launcher 中作为顶级应
用出现;而
ALTERNATIVE_CATEGORY 表示当前的 Intent 是一系列的可选动作中的一个,
这些动作可以在同一块数据上执行。具体同样可以参考
android SDK-> reference 中的
Android.content.intent 类。以前我也写过一篇于 category 有关的文章,点击这里可以
查看。
Type(数据类型): 显式指定 Intent 的数据类型(MIME)。一般 Intent 的数据
类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型
而不再进行推导。
component(组件): 指定 Intent 的的目标组件的 类名称。通常 Android 会根