[英]communication between two services by Broadcasts
I try to send some data between two services using Broadcasts. 我尝试使用广播在两个服务之间发送一些数据。 The problem is: my Broadcast Receiver class don't get the data (Not getting any data from the sender) and I don't know why.
问题是:我的广播接收器类未获取数据(未从发送方获取任何数据),我也不知道为什么。 I would appreciate any help.
我将不胜感激任何帮助。 Thanks.
谢谢。
Receiver - 接收器-
public class Background extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra(ActivityRecognizedService.LOCAL_BROADCAST_EXTRA);
Log.e(TAG,message);
}
}
Sender - 发件人-
public class ActivityRecognizedService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
private void handleDetectedActivities(List<DetectedActivity> probableActivities) {
Intent intent = new Intent(LOCAL_BROADCAST_NAME);
intent.putExtra(LOCAL_BROADCAST_EXTRA, str.toString());
//LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
sendBroadcast(intent);
}
You need register your receiver in onStartCommand
. 您需要在
onStartCommand
注册接收器。 Something like, registerReceiver(new MyReceiver(),new IntentFilter(LOCAL_BROADCAST_NAME))
像
registerReceiver(new MyReceiver(),new IntentFilter(LOCAL_BROADCAST_NAME))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.