Bluetooth: only unregisterReceiver if we register
We can get to onDestroy() without registering now. Test: none Fixes: 36501241 Change-Id: I90da3b350f9951993238d51f9fde86ccb335cafd
This commit is contained in:
@@ -65,6 +65,7 @@ public final class BluetoothPairingService extends Service {
|
|||||||
return pairingIntent;
|
return pairingIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean mRegistered = false;
|
||||||
private final BroadcastReceiver mCancelReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver mCancelReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
@@ -130,6 +131,7 @@ public final class BluetoothPairingService extends Service {
|
|||||||
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
|
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
|
||||||
filter.addAction(BluetoothDevice.ACTION_PAIRING_CANCEL);
|
filter.addAction(BluetoothDevice.ACTION_PAIRING_CANCEL);
|
||||||
registerReceiver(mCancelReceiver, filter);
|
registerReceiver(mCancelReceiver, filter);
|
||||||
|
mRegistered = true;
|
||||||
|
|
||||||
startForeground(NOTIFICATION_ID, builder.getNotification());
|
startForeground(NOTIFICATION_ID, builder.getNotification());
|
||||||
return START_REDELIVER_INTENT;
|
return START_REDELIVER_INTENT;
|
||||||
@@ -137,7 +139,10 @@ public final class BluetoothPairingService extends Service {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
unregisterReceiver(mCancelReceiver);
|
if (mRegistered) {
|
||||||
|
unregisterReceiver(mCancelReceiver);
|
||||||
|
mRegistered = false;
|
||||||
|
}
|
||||||
stopForeground(true);
|
stopForeground(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user