diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ca465a155..4c254828b 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -200,8 +200,7 @@
+ android:label="@string/service_name"/>
diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java
index b5ecb51d5..374919686 100644
--- a/src/android/org/linphone/LinphoneManager.java
+++ b/src/android/org/linphone/LinphoneManager.java
@@ -995,9 +995,10 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
public static synchronized void destroy() {
if (instance == null) return;
- getInstance().changeStatusToOffline();
+ instance.changeStatusToOffline();
sExited = true;
instance.destroyCore();
+ instance = null;
}
private String getString(int key) {
diff --git a/src/android/org/linphone/LinphoneService.java b/src/android/org/linphone/LinphoneService.java
index 6ab15a0ca..327f0fb11 100644
--- a/src/android/org/linphone/LinphoneService.java
+++ b/src/android/org/linphone/LinphoneService.java
@@ -310,6 +310,11 @@ public final class LinphoneService extends Service {
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
+ if (instance != null) {
+ Log.w("Attempt to start the LinphoneService but it is already running !");
+ return START_REDELIVER_INTENT;
+ }
+
LinphoneManager.createAndStart(LinphoneService.this);
instance = this; // instance is ready once linphone manager has been created
diff --git a/src/android/org/linphone/receivers/BootReceiver.java b/src/android/org/linphone/receivers/BootReceiver.java
index a16aff922..66a34b5cb 100644
--- a/src/android/org/linphone/receivers/BootReceiver.java
+++ b/src/android/org/linphone/receivers/BootReceiver.java
@@ -39,7 +39,7 @@ public class BootReceiver extends BroadcastReceiver {
} else {
boolean autostart = LinphonePreferences.instance().isAutoStartEnabled();
android.util.Log.i("LinphoneBootReceiver", "Device is starting, auto_start is " + autostart);
- if (autostart) {
+ if (autostart && !LinphoneService.isReady()) {
Intent lLinphoneServiceIntent = new Intent(Intent.ACTION_MAIN);
lLinphoneServiceIntent.setClass(context, LinphoneService.class);
lLinphoneServiceIntent.putExtra("ForceStartForeground", true);