background image

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 会根