Funcktioniert bei mir nicht... ich mache das momentan so dass ich den service normal stoppe, wenn das serviceStart Intent nicht null ist.
"stopService(serviceStart);"
Wenn das serviceStart Intent null ist, weil die APP selbst zwischendurch beendet wurde aber der Service noch weiter läuft dann starte ich den Service neu, um ein Intent zurück zubekommen. Ich übergebe dann dem Service ein Extra, welches dem Service dann sagt, dass es beim onStartCommand "START_NOT_STICKY" zurückgeben soll. Wenn ich das nicht übergebe wird START_STICKY zurückgebeben, da der Service immer neugestartet werden soll, wenn es vom system beendet wird.
Starten sieht so aus
1serviceStart = new Intent(cordova.getActivity(), TrackingService.class);
2
3 serviceStart.putExtra("timekey", generateTimeKey());
4 serviceStart.putExtra("aktActivityID", args.getString(0));
5
6 cordova.getActivity().getApplicationContext().bindService(serviceStart, myConnection, Context.BIND_AUTO_CREATE);
7 cordova.getActivity().getApplicationContext().startService(serviceStart);
und stoppen sieht so aus
1if(serviceStart == null) {
2 serviceStart = new Intent(cordova.getActivity(), TrackingService.class);
3 serviceStart.putExtra("timekey", "");
4 serviceStart.putExtra("stopTracker", true);
5
6 cordova.getActivity().getApplicationContext().bindService(serviceStart, myConnection, Context.BIND_AUTO_CREATE);
7 cordova.getActivity().getApplicationContext().startService(serviceStart);
8 if(serviceStart != null) {
9 cordova.getActivity().getApplicationContext().stopService(serviceStart);
10 cordova.getActivity().getApplicationContext().unbindService(myConnection);
11 } else {
12 callbackContext.success(0);
13 }
14
15 } else {
16 cordova.getActivity().getApplicationContext().stopService(serviceStart);
17 cordova.getActivity().getApplicationContext().unbindService(myConnection);
18 }
Das was oben beschrieben wurde funktioniert bei mir nicht...
1cordova.getActivity().getApplicationContext().stopService(new Intent(cordova.getActivity().getApplicationContext(), TrackingService.class));
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.