Android中Intent的作用

2,314 阅读1分钟

一、简介

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。