Android意图机制之Intent

    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 对象的匹配策略,降低 了组件之间的耦合度,提高了平台的灵活性,加强了组件的复用性,减去了开发时的负担。 

































  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值