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。 この値はnullでもかまいません。

+0

こんにちは@hankide、 あなたの答えをありがとう。 受信したインテントを、同じエクストラとデータを持つ新しい宛先に転送したいとします。だから私はデータ属性を設定している。 – vijay

+0

@vijay前の手順でsetDataを使用していますが、ここではこのコードは動作しない転送部分ですか?最初のステップも含めるようにコードを更新できますか? – hankide

+0

@vijay https://stackoverflow.com/a/2618813/6625726ここにあるように、インテントフィルタにデータ仕様がありますか? – hankide

関連する問題