一、简介
Intent是一种运行时绑定机制,它能在程序运行过程中连接两个不同的组件。
通过Intent,程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件完成请求。具体是Android根据Intent的请求内容,查询各组件注册时声明的IntentFilter,做出对应的操作。
Android的三大基本组件——Activity、Service和BroadcastReceiver——都是通过Intent机制激活的,不同类型的组件有不同的传递方式:
二、Activity使用Intent方式
要激活一个新的Activity,或者让一个现有的Activity做新的操作,可以通过调用Context.startActivity()
或者Context.startActivityForResult()
方法
其中后一个方法可以通过Bundle返回参数给前一个Activity。
三、Service使用Intent方式
启动一个新的Service,或者向一个已有的Service传递新的指令,调用Context.satrtService()
或者调用Conotext.bindService()
方法来调用此方法的上下文对象与Service绑定。
四、BroadcastReceiver使用Intent方式
Context.sendBroadcast()
、Context.sendOrderBroadcast()
、Context.sendStickBroadcast()
这三种方法可以发送Broadcast Intent
。发送之后,所有注册的并且拥有阈值相匹配IntentFilter的BroadcastReceiver就会被激活。
五、总结
Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity、Service或者BroadcastReceiver作响应。所以,不同类型的Intent消息不会出现重叠,即Broadcast的Intent消息自会发送给BroadcastReceiver,而决不会发送给Activity或Service。有startActivity()传递的消息也只会发送给Activity,有startService()传递的Intent只会发送给Service。