#17382: Fix ThreadAlreadyStarted exception
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index c619970..0a156e7 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -278,24 +278,25 @@
Log.i(TAG, "onStarted");
super.onStartCommand(intent, flags, startId);
- runFlag = true;
- sipServiceThread.start();
- sflphoneApp.setServiceRunning(true);
- Toast.makeText(this, "Sflphone Service started", Toast.LENGTH_SHORT).show();
+ if (!runFlag) {
+ sipServiceThread.start();
+ runFlag = true;
+ sflphoneApp.setServiceRunning(true);
+ Toast.makeText(this, "Sflphone Service started", Toast.LENGTH_SHORT).show();
+ }
- Log.i(TAG, "onStarted");
return START_STICKY; /* started and stopped explicitly */
}
@Override
public void onDestroy() {
/* called once by stopService() */
- super.onDestroy();
- runFlag = false;
sipServiceThread.interrupt();
sipServiceThread = null;
+ runFlag = false;
sflphoneApp.setServiceRunning(false);
Toast.makeText(this, "Sflphone Service stopped", Toast.LENGTH_SHORT).show();
+ super.onDestroy();
Log.i(TAG, "onDestroyed");
}