7

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

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

我想知道是否可以通过清单.xml (cleaner) 声明这样的接收者。

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

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

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

谢谢

4

1 回答 1

6

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

首先,这是不可能的。

其次,在清单中注册与它是否“更干净”几乎没有关系。它是让Android自己实例化接收器,这样你就可以在你的进程不运行时响应广播。而且,在您引用的具体示例中,它是允许系统上的任何应用程序向您发送广播。这些都与LocalBroadcastManager.

于 2014-06-06T12:28:37.663 回答