【问题标题】:BroadcatReceiver declared in manifest.xml not receiving LocalBroadcastManager intentsmanifest.xml 中声明的 BroadcatReceiver 未接收 LocalBroadcastManager 意图
【发布时间】:2014-06-06 12:17:40
【问题描述】:

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

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

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

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

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

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

谢谢

【问题讨论】:

    标签: android broadcastreceiver localbroadcastmanager


    【解决方案1】:

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

    首先,这是不可能的。

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

    【讨论】:

      猜你喜欢
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多