活动中的intent-filter和broadcastreceiver之间的区别

时间:2015-09-17 17:36:52

标签: android android-intent

任何人都能告诉我活动中的intent-filter和broadcastreceiver之间的区别吗?非常感谢你!

<activity>
          <intent-filter></intent-filter>
</activity>

<receiver>
      <intent-filter></intent-filter>
 </receiver>

2 个答案:

答案 0 :(得分:2)

  

我注册一个BroadcastReceiver来收听短信到达的事件。现在,我想在活动中使用intent-filter。我可以这样做吗?

<intent-filter>当然可以<activity>。有些人会这样做,比如你的发射器活动。

但是,如果您尝试在<intent-filter>上使用<activity> <receiver>上的<intent-filter>,那么就会发现短信到达&#34;不行。它不起作用的原因与Intent无关,而是与Intent无关。

对于Android中的进程间通信(IPC),我们通常使用<receiver>作为以下三种方法之一:

  • 开始活动
  • 启动或绑定服务
  • 发送广播

这些是完全独立的。您可以将它们视为电视上的三个独立频道,或三个独立的火车轨道。

当SMS到达时,系统将发出与该事件相关的一个(或多个)广播。由于它们是广播,您可以使用<activity>收听它们。由于它们是广播,因此您无法使用<service><receiver>收听广告。

欢迎您startActivity()致电<activity>来启动活动,这几乎就像让BW_T1_Tag直接回应广播一样。然而,虽然这在技术上是可行的,但它很少是正确的答案,因为用户通常不会因为你的活动在没有警告的情况下突然出现而被打断。

答案 1 :(得分:0)

当应用程序使用intent启动活动时,它只会启动一个活动(可能显示“使用...完成操作”对话框,让您选择要打开它的应用程序),同样适用于服务,但广播意图可能会启动几个广播接收器,可能来自不同的应用程序。

您可以获得更详细的提示here