App abgeschossen - Service läuft weiter

  • Antworten:2
Funkfeuer
  • Forum-Beiträge: 38

18.04.2012, 07:43:34 via Website

Hallo,

in meiner App starte ich bei einer Activity einen Service.
Ich teste die App im Emulator unter Eclipse.

Gestern habe ich die die App im Emulator bewusst abgeschossen (in Logcat), um zu prüfen, wie sich die App dabei verhält.
Dieser Fall ist ja möglich, wenn der Benutzer den Prozess manuell beendet..

Die App hat sich beendet, allerdings ist der Service noch weitergelaufen.

Weiss jemand in welcher Activity bzw. in welcher Methode ein Service beendet wird, wenn die App abgeschossen wird?

Ich habe in schon der ersten Activity finalize() bzw. finish() überschrieben. Beim Abschiessen werden diese beiden Methoden allerdings nicht (mehr) durchlaufen.
Genauso wenig Erfolg brachte onDestroy()..

In Logcat wird angezeigt, dass beim Abschiessen der App exit(1) aufgerufen wurde. Ich müsste also davor noch den Service beenden - aber wo ist das?

cu
Chris

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

18.04.2012, 07:55:23 via Website

Hallo Funkfeuer,

wenn eine App hart "abgeschossen" wird, also mit Mitteln des Betriebssystems der Prozess beendet wird durch einen "kill {process_id}" , dann wird in der App gar keine Methode oder Activity mehr durchlaufen. Das Betriebssystem gibt der App gar keine Chance mehr irgendetwas zu tun, da hier komplett außerhalb der Applikation agiert wird. Es wird einfach auf OS-Ebene der Prozess in welchem die App in der Dalvik VM läuft hart beendet. Diese Aktion ist nicht applikatorisch handlebar.

lg Voss

Antworten
Funkfeuer
  • Forum-Beiträge: 38

18.04.2012, 10:07:17 via Website

Hallo Jörg,

vielen Dank für Deine Antwort.
Dann bleibt mir nur im Service zu prüfen, ob die App noch läuft und dann evtl. den Service zu beenden bzw. zu zerstören..

Weisst Du zufällig, wie sich ein Service selbst zerstört - einfach nach stopService() die System.exit(1) aufrufen?

— geändert am 18.04.2012, 10:07:33

Antworten