Android中的Intent(一)

在学习Android的过程中,我遇到的第二个困惑是Intent,
- 什么是Intent?
- 为什么设计了这么一个机制?
- 怎么用Intent?
在如下链接中,第二个解答解除了我大部分的困惑。
http://stackoverflow.com/questions/6578051/what-is-intent-in-android
该回答翻译如下。

简单的来说,Intent是各组件(比如Activities,Services,Broadcast Receivers, 和Content Providers)之间传递的“消息”。从这个意义上讲,它和调用API时传递的参数是等价的。通过Intent来传递参数的方式和通过API call来传递参数的方式有如下区别:
- API call是同步的,而Intent是异步的。
- API call是在编译时绑定的,而Intent是在运行时绑定的。

当然,通过explicit intents, Intent可以达成和API call同样的效果。但更常用的是implicit intents。

当一个组件想调用(invoke)其它组件时,它只需要表达(发出)它想完成某项工作的Intent就可以了。其它任何, 通过intent-filter声明过自己可以完成这项工作的组件,会被Android平台自动唤醒,并且完成这项工作。组件之间无需知道对方的存在,就可以一起完成某项工作。

组件之间不可见的连接是通过intents,intent filters和Android平台来协助实现的。

一个Intent是对一个操作(operation)的抽象描述。它可以借助startActivity来启动一个Activity,借助broadcastIntent把自己广播给其它的BroadcastReceiver组件,借助startService(Intent)或者bindService(Intent, ServiceConnection, int)来和后台Service通信。

一个Intent提供了在运行时期对不同Application的代码进行绑定的机制。它最重要最频繁的应用是启动一个Activitiy,可以把它看成是Activity之间的胶水。简单来说,它是对一个动作进行抽象描述的数据结构。它包含的基本信息有,
- action 要进行的动作,比如ACTION_VIEW, ACTION_EDIT, ACTION_MAIN等。
- data 要操作的数据,比如通过uri来表示的联系人信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值