您的位置:首页 > 移动开发 > Android开发

Android意图机制之Intent

2016-02-02 09:06 204 查看
Intent译为意图,即安卓中的意图机制。在Android中可以理解为不同组件之间通信的媒介或者信使。Intent类是Android组件连接的核心,一个Intent对象是对某个将要进行的操作所进行的封装的抽象描述。它也用于Android四大核心组件中的Activity,service,Broadcast之间传递数据。同是它也用来打开Activity,在多个Activity之间传递数据,启动后台服务,集中体现了整个组件连接模型的设计思想。

Intent启动不同组件的方法如下表所示。




一个Intent包含6个方面的属性:action、data、category、type、component和extras,我们在下面进行逐一说明。

(1)action属性描述Intent对象所要实施的动作,可以调用Intent.setAction()方法为Intent对象来指定,常用action如下。

<1> ACTION_MAIN:表示整个程序的入口。

<2>ACTION_VIEW:表示用于将一些数据显示给用户。

<3>ACTION_EDIT:表示对一些文本及数据信息进行编辑。


<4>ACTION_DIAL:表示打电话面板。


<5>ACTION_CALL:表示拨打电话。

<6>ACTION_SEND:表示发送短信。

<7>ACTION_SENDTO:表示将短信发送给。

<8>ACTION_BATTERY_LOW:表示电池电量较低。

(2)data属性描述Intent对象中用于进行操作的数据,比如一些要向用户展示的信息,还有两个组件之间传递的数据。Intent.setData()或者Intent.Set
Data AndType()来进行设置。

(3)category属性描述Intent对象中的action属性属于哪个类别,也就是设置Intent对象进行某项操时的约束。

(4)type属性用来描述组件能够处理的请求类型,我们可以使用Intent.setType()或者Intent.setDataAndType()来进行设置。

(5)component即组件,用户可以通过Intent.setComponent()方法利用类名进行设定,可以通过Intent.setClass()方法利用类型对象信息进行设置。如果调用组件明确指定了component信息,组件管理服务就不再需要action、data等信息去寻找满足其需求的组件了。

(6)extras属性以Bundle类的形式存储其它额外的数据。

Intent意图机制的使用方式有两种,一种称为显示意图,另外一种称为隐式意图。

1.显示意图:是指子在创建Intent对象时,直接指定其所对应的Activity组件,这时我们就可以用这个Intent对象作为参数,来调用startActivity()启动这个Activity。如下:

Intent intent=new Intent(Demo1Activity.this,Demo2Activity.class);

startActivity(intent);

2.隐式意图:这种方式就是指在创建Intent时不指定其所对应的Activity组件,而是设置action、category、type等属性,通过这些属性信息来调用相应Activity去运行这个intent。使用隐式意图最大的好处就是以弱耦合的形式将Intent和Activity关联起来。提供了更大的灵活性。

一个Intent中可以有一组Intent过滤器,也可以有多组,根据需要进行添加。如果一个Activity中action的值“android.intent.Main”说明这个Activity是整个APP的主程序入口。Android的意图机制是Android应用模型的核心,通过Intent机制解决了组件之间的连接问题。通过Intent对象和Intent Filter 对象的匹配策略,降低 了组件之间的耦合度,提高了平台的灵活性,加强了组件的复用性,减去了开发时的负担。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: