在manifest.xml中声明的BroadcatReceiver未接收LocalBroadcastManager意图

时间:2014-06-06 12:17:40

标签: android broadcastreceiver localbroadcastmanager

虽然可以通过代码声明“本地”BroadcastReceiver,但它接收通过LocalBroadcastManager.Ex发布的意图

LocalBroadcastManager.getInstance(this).registerReceiver(new FooReceiver(), new IntentFilter("foo_intent_filter"));

我想知道是否可以通过清单 .xml(清洁)声明此类接收器。

当我使用'清单方式'时,接收方没有'接收'意图。

  <receiver
        android:name="FooReceiver"
        android:enabled="true"
        android:exported="false" >
        <intent-filter>
            <action android:name="foo_intent_filter" />
        </intent-filter>
  </receiver>

我错过了什么吗?或代码方式是唯一可行的解​​决方案。

由于

1 个答案:

答案 0 :(得分:6)

  

我想知道是否可以通过manifest.xml(清理器)声明这样的接收器。

首先,这是不可能的。

其次,在清单中注册与“清洁&#34;”无关。它允许Android自己实例化接收器,以便您可以在进程未运行时响应广播。并且,在您引用的具体示例中,允许系统上的任何应用程序向您发送广播。这些都与LocalBroadcastManager无关。