App beenden verhindern

  • Antworten:4
  • Bentwortet
Andreas Weichert
  • Forum-Beiträge: 287

27.06.2012, 20:59:07 via Website

Hallo Leute!
Meine App soll immer im Hintergrund laufen,
d.h. nicht von Android beendet werden können.

Im Hintergrund läuft letztendlich nur eine
Hander.SendMessageDelayed(0, XXXXX)
Falls der feuert soll was passieren. Activity öffnen etc.

Als Lösung habe ich immer wieder den Service gefunden,
ist mir aber nicht wirklich klar geworden wie das funktionieren soll.

Also wie ich einen Service starte ist mir klar.

Reicht es aus einfach eine dummy-Service zu starten
und die App kann nicht beendet werden. Wohl nicht.....

Läuft der Service als unabhängiger Prozess ohne die App weiter.
Muß er den unabhängig (heißt keine Objekte der App verwenden) entwicklt werden.
Was ist wenn ich Komponenten der App darin verwende.

Kann mir da jemand weiterhelfen?

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

27.06.2012, 21:22:13 via App

Schau Dir mal das Konzept des Remote Service an. Diese laufen in einem eigenen Prozess.

Vor dem Abschuss durch Android ist so gut wie nichts sicher. Man kann aber dafür sorgen das ein Service nach einem Abschuss wieder neu gestartet wird - wenn die Gründe für den Abschuss nicht mehr vorliegen.

Antworten
Jürgen
  • Forum-Beiträge: 50

04.09.2012, 09:41:40 via Website

Harald Wilhelm
Schau Dir mal das Konzept des Remote Service an. Diese laufen in einem eigenen Prozess.

Vor dem Abschuss durch Android ist so gut wie nichts sicher. Man kann aber dafür sorgen das ein Service nach einem Abschuss wieder neu gestartet wird - wenn die Gründe für den Abschuss nicht mehr vorliegen.

Hi,
ich greife das Themal mal auf, da es mich interessiert.

Dürfte ich fragen wie man einen abgeschossenen Service automatisch neu startet?

Gruß
J.

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

04.09.2012, 11:35:48 via Website

Klar, das entscheidest Du zum Beispiel durch den Returnwert des onStartCommand():

Service Constants for onStartCommand()

Ich nutze fast immer START_REDELIVER_INTENT. Wird der Service abgeschossen so wird er, wenn möglich, direkt wieder gestartet. Ob er dann wiederholt gestartet wurde erkennt man im onStartCommand() mit Hilfe des Flags:

1if ((flags & START_FLAG_REDELIVERY) == 1) {
2 // Re-Start nach vorherigem Abschuss
3}

Antworten
Jürgen
  • Forum-Beiträge: 50

04.09.2012, 12:48:07 via Website

Danke für die schnelle Anwort, das muss ich mir mal ansehen.
Aber jetzt hab ich zumindest eine Richtung :)

Gruß
J.

Antworten