我在清单中注册了5个不同事件的BroadcastReceiver。
为简单起见,我们假设事件被命名为A,B,C,D和E.
收到事件B后,我想取消注册接收器以停止侦听事件E.可以这样做吗?
答案 0 :(得分:2)
通过unregisterReceiver()
在您注册的BroadcastReceiver
上致电registerReceiver()
,然后使用修订后的IntentFilter
重新注册。
如果BroadcastReceiver
是通过清单注册的,而不是通过registerReceiver()
注册的,则可以通过BroadcastReceiver
停用整个PackageManager
组件。但是,我知道无法禁用单个意图过滤器,因此您可能需要将E逻辑移到单独的BroadcastReceiver
中,这样您就可以独立于其他人启用和禁用它。