diff --git a/org.eclipse.paho.android.service/org.eclipse.paho.android.service/src/main/java/org/eclipse/paho/android/service/MqttAndroidClient.java b/org.eclipse.paho.android.service/org.eclipse.paho.android.service/src/main/java/org/eclipse/paho/android/service/MqttAndroidClient.java index a2142955..d5cd323f 100755 --- a/org.eclipse.paho.android.service/org.eclipse.paho.android.service/src/main/java/org/eclipse/paho/android/service/MqttAndroidClient.java +++ b/org.eclipse.paho.android.service/org.eclipse.paho.android.service/src/main/java/org/eclipse/paho/android/service/MqttAndroidClient.java @@ -152,7 +152,7 @@ public void onServiceDisconnected(ComponentName name) { private Ack messageAck; private boolean traceEnabled = false; - private volatile boolean registerReceiver = false; + private volatile boolean receiverRegistered = false; private volatile boolean bindedService = false; /** @@ -430,8 +430,8 @@ public IMqttToken connect(MqttConnectOptions options, Object userContext, myContext.startService(serviceStartIntent); myContext.bindService(serviceStartIntent, serviceConnection, Context.BIND_AUTO_CREATE); - - registerReceiver(this); + + if (!receiverRegistered) registerReceiver(this); } else { pool.execute(new Runnable() { @@ -441,7 +441,7 @@ public void run() { doConnect(); //Register receiver to show shoulder tap. - registerReceiver(MqttAndroidClient.this); + if (!receiverRegistered) registerReceiver(MqttAndroidClient.this); } }); @@ -454,7 +454,7 @@ private void registerReceiver(BroadcastReceiver receiver) { IntentFilter filter = new IntentFilter(); filter.addAction(MqttServiceConstants.CALLBACK_TO_ACTIVITY); LocalBroadcastManager.getInstance(myContext).registerReceiver(receiver, filter); - registerReceiver = true; + receiverRegistered = true; } /** @@ -1710,10 +1710,10 @@ public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout) * IntentReceiver leaks. */ public void unregisterResources(){ - if(myContext != null && registerReceiver){ + if(myContext != null && receiverRegistered){ synchronized (MqttAndroidClient.this) { LocalBroadcastManager.getInstance(myContext).unregisterReceiver(this); - registerReceiver = false; + receiverRegistered = false; } if(bindedService){ try{ @@ -1736,7 +1736,7 @@ public void unregisterResources(){ public void registerResources(Context context){ if(context != null){ this.myContext = context; - if(!registerReceiver){ + if(!receiverRegistered){ registerReceiver(this); } }