Service beenden wenn App geschlossen wird.

  • Antworten:8
  • Bentwortet
Marco
  • Forum-Beiträge: 28

24.08.2014, 13:13:31 via Website

Guten Tag,

ich hab momentan irgendwie ein Problem welches ich noch nicht so ganz verstehe und hoffe das mir hier jemand helfen kann.

Ich habe mir einen Service geschrieben, welcher die Verbindung mit einem Server, über Socket, aufbauen soll. Das ganze funktioniert soweit auch. ClientService extends Service { .... }

Im Service selber habe ich eine Static-Variable mit welcher ich mir merken kann ob der Service schon gestartet wurde. Das ganze funktioniert auch.

Jetzt hab ich folgendes Problem zudem ich keine Lösung finde.

Beim start wird in der Serviceklasse onCreate() aufgerufen. Soweit so gut. Jetzt beende ich aber die app und es wird erneut die onCreate() aufgerufen. Genau das möchte ich nicht. Ich möchte dass der Service beim beenden der App auch beendet wird.

Was mache ich falsch?

Viele Dank

— geändert am 24.08.2014, 13:21:32

Antworten
Michele
  • Forum-Beiträge: 1.525

24.08.2014, 13:15:46 via Website

Hallo Marco.

Bitte beachte, dass Threads mit nicht aussagekräftigem Titel bei uns üblicherweise den Regeln entsprechend entfernt werden. Ich bitte dich daher, deinen Threadtitel spätestens innerhalb der nächsten 24 Stunden noch etwas aussagekräftiger zu gestalten (Hierfür einfach unter deinem ersten Beitrag auf 'bearbeiten' klicken, dann kannst du oben noch mal den Titel anpassen)

Danke :)

LG

Antworten
Marco
  • Forum-Beiträge: 28

24.08.2014, 13:21:53 via Website

Ok tut mir leid. Hoffe es ist jetzt etwas aussagekräftiger.

Antworten
Michele
  • Forum-Beiträge: 1.525

24.08.2014, 13:24:21 via Website

Hallo.

Kein Problem. Nun ist es ja super :).

Zu deinem Problem.

Warum willst du den Service schließen, wenn du deine App beendest/schließt?
Der Service ist doch eigentlich extra dafür da, das er im Hintergrund läuft, wenn die App geschlossen ist.

Sonst kann du doch alles so in deiner Activity ohne Service laufen lassen.

LG

— geändert am 24.08.2014, 13:24:35

Antworten
Marco
  • Forum-Beiträge: 28

24.08.2014, 13:35:37 via Website

Bin noch relativ neu und es handelt sich um das erste Android-Projekt von mir. Glaub da ist einiges noch nicht ganz klar.

Vielleicht erkläre ich einmal was genau ich vor hab.

Ich brauche eine Socketverbindung für verschiedene Activities. Deshalb hab ich mich für einen Service entschieden. Mittels Localbrodcast versende ich meine Aufgaben welche dann vom Service entgegengenommen werden und dann eben an den Server geschickt werden.

Vielleicht liegt ja auch hier mein Problem.

Da es ja sehr sehr ungünstig ist eine Socketverbindung aufrechtzuerhalten wenn sie nicht gebraucht wird hab ich mich dazu entschlossen GCM zu nutzen. Somit wird die Verbindung nur aufgebaut wenn der Benutzer eine Verbindung braucht. Das spart Akku.

Vorteil ist ja dann das ich den Service für die Socketverbindung von jeder Activity aus starten kann bzw. erreichen kann. Glaub aber hier liegt das Problem. Richtig?

— geändert am 24.08.2014, 13:37:00

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

24.08.2014, 13:40:03 via App

Brauchst du überhaupt eine Dauerhaft Verbindung übers socket?
Sonst knnst di das auch durch http ersetzen

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Marco
  • Forum-Beiträge: 28

24.08.2014, 15:19:53 via Website

Ja ich brauch eine Socketverbindung. Ist keine reine Webanwendung. Socketverbindung nach einem Aufruf jedes mal zu beenden ist für mein Fall keine Option.

Evt könnte man das doch mit einer Static-klasse lösen oder? Eine eigene Activity brauch ich dafür ja eigentlich nicht oder?

Andy N.

Antworten
Marco
  • Forum-Beiträge: 28

24.08.2014, 19:32:59 via Website

Vielen vielen Dank Andreas. Ich war mir der Funktionen eines Services nicht ganz bewusst. Bin zwar ein guter Javaprogrammierer aber Android ist doch schon etwas anderes. Ich hab das ganze jetzt mit einem Singleton realisiert. Das ganze funktioniert jetzt auch ganz gut.

Danke nochmal.

Antworten