From 8260b482de29e3f775ef5cbc546cc13d93ac830d Mon Sep 17 00:00:00 2001 From: Florian <florian.taurer@gmx.at> Date: Mon, 28 May 2018 10:05:20 +0200 Subject: [PATCH] bugfix after service is interrupted and app is closed --- .../java/at/ac/fhstp/sonicontrol/SoniService.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/SoniService.java b/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/SoniService.java index 9cfad2d7..1290e2ae 100644 --- a/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/SoniService.java +++ b/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/SoniService.java @@ -23,11 +23,14 @@ import android.app.Notification; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; +import android.content.SharedPreferences; import android.os.IBinder; +import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationManagerCompat; import android.util.Log; +import android.widget.ImageButton; import android.widget.Toast; import java.util.concurrent.Executors; @@ -57,7 +60,15 @@ public class SoniService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { - if (ServiceConstants.ACTION.STARTFOREGROUND_ACTION.equals(intent.getAction())) { + if(intent == null){ + Intent service = new Intent(getApplicationContext(), SoniService.class); + service.setAction(ServiceConstants.ACTION.STOPFOREGROUND_ACTION); + startService(service); + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor ed = sp.edit(); + ed.putString(ConfigConstants.PREFERENCES_APP_STATE, StateEnum.ON_HOLD.toString()); + ed.apply(); + }else if (ServiceConstants.ACTION.STARTFOREGROUND_ACTION.equals(intent.getAction())) { //Log.i(LOG_TAG, "Received Start Foreground Intent "); showNotification(); SoniService.IS_SERVICE_RUNNING = true; -- GitLab