我正在尝试使用本地广播接收器。
为了做到这一点,我已经完成了下一步 -
1)在一个活动中,我想要发生一些事情,我已经创建了一个类 -
private class NewGroupReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.d("The group ", "GOT IN THE RECIVING");
Toast.makeText(this, "Working",Toast.LENGTH_SHORT).show();
}
}
2)在同一个活动中,我使用下一个代码来创建接收器 -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NewGroupReceiver receiver = new NewGroupReceiver();
//the intent filter will be action = "com.example.demo_service.action.SERVICE_FINISHED"
IntentFilter filter= new IntentFilter("com.example.apps.action.NEW_GROUP");
// register the receiver:
registerReceiver(receiver, filter);
}
3)在服务类中,我使用下一个代码来了解发生了什么事情 -
Intent resultsIntent=new Intent("com.example.apps.action.NEW_GROUP");
LocalBroadcastManager localBroadcastManager =LocalBroadcastManager.getInstance(this);
localBroadcastManager.sendBroadcast(resultsIntent);
现在的问题是,当我想知道的事情发生时 - 我看到它进入我在步骤3中使用的代码,但它似乎没有进入BroadcastReceiver - 这一步1个代码。
知道我在这里做错了什么吗? 感谢您提供任何帮助。
答案 0 :(得分:12)
您正在使用LocalBroadcastManager
发送请求,但是您在" global"上注册了接收器。意图。您应该使用LocalBroadcastManager注册接收器或发送广播
应用程序上下文:
第2步
LocalBroadcastManager.getInstance(this).registerReceiver (receiver, filter);