我有一个应用程序,用户可以在其中更新活动中的某些变量,该活动使用BroadcastReceiver将新变量传递给IntentService。但是,IntentService中的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管理器安装了它。我有什么地方做错了吗?
发布于 2012-03-10 02:31:49
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();
}
};在onCreate()方法中或相关的地方。
mReceiver = new UpdateReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("<your receivers intent goes here>");
this.registerReceiver(mReceiver, filter);现在,您应该能够发送广播并将其接收。
Intent intent = new Intent("<your receivers intent goes here>");
// Add what you want to add to the intent right here.
<context-handle>.sendBroadcast(intent);https://stackoverflow.com/questions/9638142
复制相似问题