【问题标题】:LocalBroadcastManager not working for intent which has data attributeLocalBroadcastManager 不适用于具有数据属性的意图
【发布时间】:2017-09-01 10:04:09
【问题描述】:

因为在Receiver中没有收到广播消息,我被困在这里半天多了。

在这里,我正在发送带有数据属性集的广播消息。当我这样做时,接收方未收到消息。

Intent intent  = new Intent("some.action");
intent.putExtras(receivedIntent.getExtras());
intent.setData(receivedIntent.getData());
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

但是当我不设置数据属性时,消息接收正常。

Intent intent  = new Intent("some.action");
intent.putExtras(receivedIntent.getExtras());
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

将数据设置为意图真的是一个问题还是我遗漏了什么?

【问题讨论】:

    标签: android android-intent android-broadcast android-broadcastreceiver


    【解决方案1】:

    setData() 指向一个位置(例如可能是一个文件)。我很确定你打算使用putExtra()

    Intent i = new Intent("some.action");   
    i.putExtra("Variable name", "Content to send");
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
    

    作为参数,setData 需要一个 Uri,所以如果这确实是您想要的,那么代码还有其他问题。

    Uri:此意图现在定位的数据的 Uri。 该值可能为空。

    【讨论】:

    • 嗨@hankide,感谢您的回答。我想将收到的意图转发到具有相同附加信息和数据的新目的地。这就是我设置数据属性的原因。
    • @vijay 那么,您在上一步中成功使用了 setData,而这里的代码是无法正常工作的转发部分?您能否更新代码以包含第一步?
    • @vijay 您的意图过滤器中是否有数据规范,如此处所示stackoverflow.com/a/2618813/6625726
    • 嗨@hankide,感谢您的回复。我已经更新了实际代码。
    • @vijay 你看到我关于意图过滤器的最后评论了吗?想不出还有什么可能是错的。
    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 2017-11-30
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多