广播接收器和活动之间的差异

时间:2012-03-23 13:39:03

标签: android

我现在正在阅读文档,我有一件事需要修复 - 请告诉我,广播接收器和活动之间有什么区别(没有活动可以显示UI的事实)?广播接收器使用intent-filter获取通知,但Activity也可以这样做!请让我说清楚。谢谢。

3 个答案:

答案 0 :(得分:2)

活动是对您的输入起作用或需要用户启动以启动任何任务的东西,但是在广播接收器的帮助下,您可以在启动广播接收器以监听来电时监听系统服务,然后每次有来电时调用它将启动你的方法你为此写的更多解释检查这些

http://developer.android.com/reference/android/content/BroadcastReceiver.html

http://www.vogella.de/articles/AndroidServices/article.html

答案 1 :(得分:0)

你基本上拥有它。活动旨在与UI相关联。相比之下,广播接收器仅“捕捉”通过应用程序/系统广播的意图。但是,对于如何将对象加载到系统中以及它持续多长时间也存在影响。来自BroadcastReciever文档:

  

BroadcastReceiver对象仅在对onReceive(Context,Intent)的调用期间有效。一旦您的代码从此函数返回,系统会认为该对象已完成且不再有效。

     

这对你在onReceive(Context,Intent)实现中可以做的事情有重要的影响:任何需要异步操作的东西都不可用,因为你需要从函数返回来处理异步操作,但是那时候BroadcastReceiver不再处于活动状态,因此系统可以在异步操作完成之前自由终止其进程。

记住这些差异,系统可能能够更有效地执行您的应用程序......

答案 2 :(得分:0)

活动仅在您打开时才有效。当它移动到后台时,它会暂停或关闭。

监听器始终在后台运行。唯一可以“激活”监听器的东西就是它正在监听的东西。例如:广播用户将在您收到电话或短信时检测(并做出反应),但会忽略您设置闹钟的事实(因为它只关注传入/传出的广播)

意图过滤器对两者都做了几乎相同的事情,区别在于它是如何被调用的。通过活动,它需要用户做某事;使用侦听器,它需要触发侦听器。