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

Jes*_*ido 7 android broadcastreceiver localbroadcastmanager

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

LocalBroadcastManager.getInstance(this).registerReceiver(new FooReceiver(), new IntentFilter("foo_intent_filter"));
Run Code Online (Sandbox Code Playgroud)

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

当我使用"清单方式"时,接收者没有"接收"意图.

  <receiver
        android:name="FooReceiver"
        android:enabled="true"
        android:exported="false" >
        <intent-filter>
            <action android:name="foo_intent_filter" />
        </intent-filter>
  </receiver>
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Com*_*are 6

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

首先,这是不可能的.

其次,在清单中注册与"清洁"无关.它允许Android自己实例化接收器,以便您可以在进程未运行时响应广播.而且,在您引用的具体示例中,它允许系统上的任何应用程序向您发送广播.这两者都不相关LocalBroadcastManager.