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:
Marie Janssen
2017-03-23 14:36:45 -07:00
parent db66a7b664
commit af34ed06f1

View File

@@ -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);
} }