如何正确注销广播接收器

How to unregister a broadcast receiver properly

我按照这个答案注册了一个接收器,它工作得很好。 现在我想知道如何在 ondestroy 中注销它?

注销广播接收器很简单,调用 unregisterReceiver 方法并将广播接收器传递给它。

根据您分享的答案

1) 将onCreate方法中广播接收器的注册改为

registerReceiver(gpsReceiver, new IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION));

2) 声明一个全局变量

final BroadcastReceiver gpsReceiver = new GpsReceiver(new LocationCallBack() {
        @Override
        public void onLocationTriggered() {
            //Location state changed
        }
    });

3) 在onDestroy中注销广播接收器

unregisterReceiver(gpsReceiver);