首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:隐含意图与广播接收器

Android:隐含意图与广播接收器
EN

Stack Overflow用户
提问于 2014-03-17 09:18:13
回答 1查看 9.2K关注 0票数 23

我将加快Android开发的速度,隐含意图和广播接收器之间的区别还不清楚。我希望在区分这两个概念以及何时使用这两个概念方面得到帮助。

两者都接收意图,都对系统消息做出反应,那么为什么需要广播接收器,以及何时使用它,而不是使用隐式意图和意图过滤器来接受隐式意图?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-17 09:33:08

广播就是--向任何收听的人广播信息。它们本质上是不安全的,并且无法保证投递到预期的收件人,因为确实没有预期的收件人。例如,CONNECTIVITY_CHANGE的广播清楚地表明了这一点:当安卓设备的连接发生变化时,许多应用程序可能会感兴趣。ConnectivityManager不需要通过特定的Intent通知每个应用程序,而是发送广播。任何对此事件感兴趣的应用程序都将收到通知。任何没有运行或不关心的应用程序...不会的。

当一个应用或Activity想要启动另一个来做一些非常具体的事情时,就会“发送”一个Intent。例如,文件管理器可能想要启动图像查看器或视频播放器。你的应用程序可能想要在你的另一个应用程序中启动一个非常特定的Activity,等等。通过特定意图(例如,包括包名和组件名)进行的通信不容易被截获,因此它在某种程度上更安全。最重要的是,只有一个“接收器”--如果找不到任何接收器,Intent就会失败。

此外,BroacastReceiver将在ActivityService中处于活动状态,并且接收到的广播通常只会更改状态和/或进行次要的UI更新...例如,如果internet连接中断,您可能会禁用一些操作。相比之下,特定的意图通常会启动新的Activity或将现有的an带到前台。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22445413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档