我有一个关于 registerReceiver 和 addAction 的问题。
假设我有一个服务,它在一个活动中运行(通过一个开始按钮)。该服务将通过 registerReceiver 注册一个接收者。在服务的 onStartcommand() 方法中有类似的东西:
final IntentFilter filter1 = new IntentFilter();
filter1.addAction(ACTION_1); // The ACTION is defined in my code
this.br_receiver = new MyBroadcastReceiver(); // The class is defined in my code
this.registerReceiver(this.br_receiver, filter1);
return (START_STICKY);
现在,假设我有三个不同的操作和三个复选框(每个操作一个)。当我按下按钮时,它会启动服务来检查它必须通过 addAction 方法()添加哪些操作。当然还有停止按钮。
我的问题:当我使用 unregisterReceiver() 方法时,我怎样才能停止只处理我想要的操作(由于在单击停止按钮之前选中了复选框,我知道哪些操作)?
我不确定我是否清楚,所以我将以不同的方式解释它:我知道一种解决方案是在我启动服务时添加所有 ACTIONS (addAction),然后在 onReceive 方法()中,我可以使用三个布尔值来了解要处理的操作。我认为这个解决方案很糟糕。
我应该使用不同的 IntentFilter,每个 ACTION 一个吗?如果是,如何?
如果您有答案甚至建议,欢迎您!
谢谢。