我有一个应用程序,其中用户在Activity中更新某些变量,然后Activity使用BroadcastReceiver将新变量传递给IntentService。但是,IntentService中的BroadcastReceiver似乎没有接收到广播。以下是服务中创建BroadcastReceiver的代码:
protected class UpdateReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent){
Log.d("receiver", "Got message: ");
//state=3;
//Toast.makeText(context, "got it", Toast.LENGTH_SHORT).show();
}
};
这里是在onHandle()函数中注册接收器的代码:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("updates");
UpdateReceiver lol = new UpdateReceiver();
DetectService.this.registerReceiver(lol, intentFilter);
最后,这是从活动中发送广播的代码。
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("updates");
HomePageActivity.this.sendBroadcast(broadcastIntent);
Log.d("sender", "send msg");
当我把接收器放在广播部分相同的活动中时,它可以正常工作,但是当我把它放入IntentService时却不能正常工作。请帮帮我!
另外,我在这个项目中尝试使用LocalBroadcastManager,因为所有的广播都是本地的,但是eclipse似乎无法导入兼容类。我已经使用Android SDK管理器安装了它。我在这里做错了什么吗?