0

因为没有收到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); 

是设置数据意图真的是一个问题还是我错过了什么?

回答

2

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

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

作为参数,setData需要一个开放的,所以如果真的是你想要的,还有别的错误的代码。

Uri:这个意图现在的目标数据的Uri。 该值可能为空。

+0

Hi @hankide, 感谢您的回答。 我想将接收到的意图转发到具有相同附加功能和数据的新目的地。这就是为什么我设置数据属性。 – vijay

+0

@vijay所以,你在上一步中成功地使用了setData,这里的代码是不起作用的转发部分?你能否更新代码以包含第一步呢? – hankide

+0

@vijay你有意图过滤器中的数据规范,见https://stackoverflow.com/a/2618813/6625726? – hankide

相关问题