广播接收器未激活
Broadcast Receiver is not activated
从外部通信接收到数据后,我想通过广播发送它以便在屏幕上打印它。
这是我的服务中将数据发送到广播中的部分:
Intent intent = new Intent("CodeFilter_MemoryRead");
intent.putExtra("data_memory_read_from_hce", MemoryStringValue);
this.sendBroadcast(intent);
以及用于接收它的 activity:
@Override
protected void onStart() {
super.onStart();
final IntentFilter hceNotificationsFilter = new IntentFilter();
hceNotificationsFilter.addAction("CodeFilter");
registerReceiver(hceNotificationsReceiver, hceNotificationsFilter);
}
final BroadcastReceiver hceNotificationsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String hcedata = intent.getExtras().toString();
RealMessageReceived.setText(hcedata);
Log.i(TAG, "Broadcast listener activated");
}
};
我遇到的问题是,即使在命令 this.sendBroadcast(intent)
之后,我的 BroadcastReceiver 也从未被激活。你能帮帮我吗?
您创建 Intent
所用的字符串与您添加到 IntentFilter
的字符串不匹配。它们需要相同才能让接收者接收到意图。以下代码应该有效:
Intent intent = new Intent("CodeFilter_MemoryRead");
intent.putExtra("data_memory_read_from_hce", MemoryStringValue);
this.sendBroadcast(intent);
和
@Override
protected void onStart() {
super.onStart();
final IntentFilter hceNotificationsFilter = new IntentFilter();
hceNotificationsFilter.addAction("CodeFilter_MemoryRead");
registerReceiver(hceNotificationsReceiver, hceNotificationsFilter);
}
final BroadcastReceiver hceNotificationsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String hcedata = intent.getExtras().toString();
RealMessageReceived.setText(hcedata);
Log.i(TAG, "Broadcast listener activated");
}
};
从外部通信接收到数据后,我想通过广播发送它以便在屏幕上打印它。
这是我的服务中将数据发送到广播中的部分:
Intent intent = new Intent("CodeFilter_MemoryRead");
intent.putExtra("data_memory_read_from_hce", MemoryStringValue);
this.sendBroadcast(intent);
以及用于接收它的 activity:
@Override
protected void onStart() {
super.onStart();
final IntentFilter hceNotificationsFilter = new IntentFilter();
hceNotificationsFilter.addAction("CodeFilter");
registerReceiver(hceNotificationsReceiver, hceNotificationsFilter);
}
final BroadcastReceiver hceNotificationsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String hcedata = intent.getExtras().toString();
RealMessageReceived.setText(hcedata);
Log.i(TAG, "Broadcast listener activated");
}
};
我遇到的问题是,即使在命令 this.sendBroadcast(intent)
之后,我的 BroadcastReceiver 也从未被激活。你能帮帮我吗?
您创建 Intent
所用的字符串与您添加到 IntentFilter
的字符串不匹配。它们需要相同才能让接收者接收到意图。以下代码应该有效:
Intent intent = new Intent("CodeFilter_MemoryRead");
intent.putExtra("data_memory_read_from_hce", MemoryStringValue);
this.sendBroadcast(intent);
和
@Override
protected void onStart() {
super.onStart();
final IntentFilter hceNotificationsFilter = new IntentFilter();
hceNotificationsFilter.addAction("CodeFilter_MemoryRead");
registerReceiver(hceNotificationsReceiver, hceNotificationsFilter);
}
final BroadcastReceiver hceNotificationsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String hcedata = intent.getExtras().toString();
RealMessageReceived.setText(hcedata);
Log.i(TAG, "Broadcast listener activated");
}
};