如何一次注销不同 类 中的多个广播接收器?
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。我怎样才能做到这一点?我如何检查接收器是否已注册..?
- 使用方法 unresisterRegisters()
在 Activity C 中创建一个接口
- 在 Activity A 和 B 中实现此接口。重写方法并编写取消注册接收器的代码
- 在 OnButton 中的 Activity C 中创建 A 和 B 的对象单击并用这两种方法调用 unresisterRegisters() 方法。
希望对您有所帮助。
即使在 activity 超出屏幕后仍保持广播接收器注册是内存泄漏,您不应该这样做。
始终在 onStart/onCreate/onResume 中注册您的广播接收器并在 onStop/onDestroy/onPause 中注销它们。
为什么即使 activity 不在屏幕上,您也需要保持接收器处于活动状态?如果您希望在 activity 范围之外执行某些操作,您也可以使用 Android 服务。
我想用单个 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。我怎样才能做到这一点?我如何检查接收器是否已注册..?
- 使用方法 unresisterRegisters() 在 Activity C 中创建一个接口
- 在 Activity A 和 B 中实现此接口。重写方法并编写取消注册接收器的代码
- 在 OnButton 中的 Activity C 中创建 A 和 B 的对象单击并用这两种方法调用 unresisterRegisters() 方法。
希望对您有所帮助。
即使在 activity 超出屏幕后仍保持广播接收器注册是内存泄漏,您不应该这样做。
始终在 onStart/onCreate/onResume 中注册您的广播接收器并在 onStop/onDestroy/onPause 中注销它们。
为什么即使 activity 不在屏幕上,您也需要保持接收器处于活动状态?如果您希望在 activity 范围之外执行某些操作,您也可以使用 Android 服务。