From 70f263c08b74d36e08708e031d52be89d4130939 Mon Sep 17 00:00:00 2001 From: oliexdev Date: Thu, 1 Feb 2018 20:17:22 +0100 Subject: [PATCH] check if receiver is registered before unregister it. --- .../openscale/gui/preferences/BluetoothPreferences.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java index 2245525f..ef2e1696 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java @@ -52,6 +52,7 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr private CheckBoxPreference smartAssignEnable; private CheckBoxPreference ignoreOutOfRangeEnable; private PreferenceScreen btScanner; + public boolean isReceiverRegistered; private BluetoothAdapter btAdapter = null; @@ -67,6 +68,7 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); getActivity().registerReceiver(mReceiver, filter); + isReceiverRegistered = true; btAdapter.startDiscovery(); } @@ -119,7 +121,9 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr @Override public void onDestroy() { - getActivity().unregisterReceiver(mReceiver); + if (isReceiverRegistered) { + getActivity().unregisterReceiver(mReceiver); + } super.onDestroy(); } @@ -137,6 +141,7 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr btScanner = (PreferenceScreen) findPreference(PREFERENCE_KEY_BLUETOOTH_SCANNER); btScanner.setOnPreferenceClickListener(new onClickListenerScannerSelect()); + isReceiverRegistered = false; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); btScanner.setSummary(prefs.getString("btDeviceName", "-"));