Prozesse im Hintergrund ausführen?

  • 6 Antworten
  • Letztes Antwortdatum
C

cha

Neues Mitglied
1
Bei Apps wie zum Beispiel WhatsApp läuft im Hintergrund ein Prozess, der in diesem konkreten Fall die Nachrichten abruft. Dieser Prozess ist nicht an eine bestimmte Activity gebunden und wird auch weitergeführt, wenn die Activitys der App durch den Benutzer beendet werden.

Wie heißt die entsprechende Technologie (1)
und wie kann ich einen solchen Prozess beim Systemstart starten (2)?
 
Bei WhatsApp läuft kein wirklich aktiver Prozess im Hintergrund. Ein Receiver wird getriggert wenn über Google Cloud Messaging eine Nachricht für WhatsApp eingeht. Dieser Receiver startet wiederum einen Service der dann das Callback an den WhatsApp Server erledigt und weitere notwendige Aufgaben. Das dauert aber nicht wirklich lange, danach wird der Service wieder beendet.
 
Abgesehen von WhatsApp, wie lässt man allgemein bestimmte Prozesse Activity-unabhängig im Hintergrund laufen?
 
Abgesehen davon, dass man dauerhafte aktive Services vermeiden sollte, schau mal hier: http://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification). Falls die Frage aufkommt ob das auch ohne Notification geht, kurz und knapp Nein. Man könnte zwar mit dem AlarmManager versuchen zu tricksen, aber das würde ich mal ganz schnell wieder vergessen. Und ja es gab bei startForeground auch mal einen tollen Bug, aber das sollte man tunlichst vermeiden diesen auszunutzen.
 
Fragen wir anders, MUSS der Prozess wirklich die ganze Zeit im Hintergrund laufen?

lg. Dagobert
 
Danke für die Antworten, ich glaube service sowie service.startForeground(..) waren die Stichworte, die ich gesucht habe.


Mit Services hatte ich noch nicht vorher probiert, weil ich auf diese bis jetzt immer mit dem Stichwort aidl gestoßen war
 
Zurück
Oben Unten