如何一次注销不同 类 中的多个广播接收器?

How to unregister multiple Broadcast receiver which are in different classes at a time?

我想用单个 click.here 注销一些广播接收器是流程..让我们说 Activity 我有以下广播接收器。

    public BroadcastReceiver upload = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

        }
    };

 public BroadcastReceiver download = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

        }
    };

并且在 Activity B 中我有以下广播接收器

 public BroadcastReceiver wifi = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

        }
    };

 public BroadcastReceiver data = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

        }
    };

我的问题是我想通过单击按钮从 Activity C 中注销所有这些 BroadcastReceiver。我怎样才能做到这一点?我如何检查接收器是否已注册..?

  1. 使用方法 unresisterRegisters()
  2. 在 Activity C 中创建一个接口
  3. 在 Activity A 和 B 中实现此接口。重写方法并编写取消注册接收器的代码
  4. 在 OnButton 中的 Activity C 中创建 A 和 B 的对象单击并用这两种方法调用 unresisterRegisters() 方法。

希望对您有所帮助。

即使在 activity 超出屏幕后仍保持广播接收器注册是内存泄漏,您不应该这样做。

始终在 onStart/onCreate/onResume 中注册您的广播接收器并在 onStop/onDestroy/onPause 中注销它们。

为什么即使 activity 不在屏幕上,您也需要保持接收器处于活动状态?如果您希望在 activity 范围之外执行某些操作,您也可以使用 Android 服务。