我在Android的应用类中注册了广播接收器,但现在我的问题是在哪里注销广播呢?
public class MyApplication extends Application
{
@Override
public void onCreate() {
.....
// OTHER INITIALIZATIONS
initNetworkBR();
}
private void initNetworkBR() {
br = new BroadcastReceiver() {
....
};
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(br, filter);
}
}发布于 2022-07-06 10:09:14
正如上面提到的@Naruto,您可以在onDestroy应用方法上取消它的注册。但是,使用广播Receiversin活动而不是整个应用程序总是一个更好的选择。
您可以使用以下方法在活动中使用它:
public class DetailsActivity {
private BroadcastReceiver mNetworkReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
mNetworkReceiver = new NetworkReceiver();
registerReceiver(mNetworkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}这是取消注册的方法。
@Override
protected void onDestroy() {
super.onDestroy();
unregisterNetworkChanges();
}
protected void unregisterNetworkChanges() {
try {
unregisterReceiver(mNetworkReceiver);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}https://stackoverflow.com/questions/47455040
复制相似问题