LocalBroadcastManager不能用于具有数据属性的意图
问题描述:
因为没有收到Receiver中的广播消息,我在此停留了半天。LocalBroadcastManager不能用于具有数据属性的意图
这里我发送一个带有数据属性集的广播消息。当我这样做时,收件人未收到消息。
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);
是设置数据意图真的是一个问题还是我错过了什么?
答
setData()指向一个位置(可能是一个文件)。我很确定你打算使用putExtra()。
Intent i = new Intent("some.action");
i.putExtra("Variable name", "Content to send");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
作为参数,setData
需要一个开放的,所以如果真的是你想要的,还有别的错误的代码。
Uri:这个意图现在的目标数据的Uri。 该值可能为空。
Hi @hankide, 感谢您的回答。 我想将接收到的意图转发到具有相同附加功能和数据的新目的地。这就是为什么我设置数据属性。 – vijay
@vijay所以,你在上一步中成功地使用了setData,这里的代码是不起作用的转发部分?你能否更新代码以包含第一步呢? – hankide
@vijay你有意图过滤器中的数据规范,见https://*.com/a/2618813/6625726? – hankide