我使用LocalBroadcastManager广播一个意图,我想在这个意图中添加一个额外的字符串。
广播代码:
Intent intent = new Intent(action);
intent.putExtra("STRING_I_NEED", strValue);
LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(action));
收件人代码:
IntentFilter filter = new IntentFilter();
filter.addAction(MusicService.action);
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(MusicService.action)) {
updateUI(intent.getStringExtra("STRING_I_NEED")); // THIS IS THE LINE THAT GIVES ME THE ERROR
}
}
};
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mReceiver, filter);
我收到错误NullPointerException name为null。
我在这里遗漏了什么吗?任何帮助表示赞赏。
答案 0 :(得分:2)
你在这里创建了两个意图..所以一个意图没有任何额外的数据..
所以改变这一行
LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(action));
到
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
答案 1 :(得分:0)
尝试intent.getExtras().getString(key)