Hintergrundausführung in der mobilen Entwicklung — Wesen, Grenzen und Arbeitsprinzipien

Autor: IT Sectr Veröffentlicht: 2026-03-26 Lesezeit: 9 Min.

Background Execution ist ein Mechanismus, der es ermöglicht, Code einer mobilen App auszuführen, wenn sie sich nicht im Vordergrund befindet. Ohne diesen Mechanismus setzt das System die App beim Minimieren aus. Laut Apple, 2026 begrenzt iOS die Hintergrundzeit auf 30 Sekunden, während Android durch WorkManager und Foreground Service flexiblere Szenarien bietet.

Wichtige Punkte

  • Background Execution — Ausführung des App-Codes, wenn sie minimiert oder inaktiv ist.
  • iOS — strenge Grenzen: 30 Sekunden für Aufgaben, strenge Background Modes und App Refresh.
  • Android — WorkManager, Foreground Service, Scheduling und Doze-Modus mit verschiedenen Einschränkungen.
  • Energieverbrauch — der Hauptgrund für Einschränkungen: Hintergrundprozesse verkürzen die Akkulaufzeit des Geräts.
  • Datenschutz — ab Android 8 und iOS 13 verlangen die Systeme explizite Berechtigungen für Hintergrundarbeit.

Was ist Hintergrundausführung in mobilen Apps?

Background Execution ist die Fähigkeit einer App, Code weiter auszuführen, nachdem der Benutzer sie minimiert oder zu einer anderen App gewechselt hat. Ohne spezielle Mechanismen versetzt das mobile Betriebssystem die App innerhalb weniger Sekunden nach dem Wechsel in den Hintergrund in den Zustand Suspended (ausgesetzt) und gibt CPU und Speicher für aktive Apps frei.

App-Zustände im Hintergrund

Eine mobile App durchläuft mehrere Lebenszyklus-Zustände: Foreground (aktiv), Background (im Hintergrund), Suspended (ausgesetzt) und Terminated (beendet). Background ist der einzige Zustand, in dem die App ohne sichtbare Oberfläche Code ausführen kann. iOS und Android definieren die Dauer und die verfügbaren Operationen in diesem Zustand unterschiedlich.

Hauptanwendungsfälle

Hintergrundausführung wird für Datensynchronisation, Inhaltsdownload, Push-Benachrichtigungsverarbeitung, Hintergrund-Geolokalisierung und Audiowiedergabe benötigt. Synchronisation ist das häufigste Szenario: Die App sendet Daten an den Server oder lädt Updates ohne Benutzereingriff herunter.

  • Synchronisation — Hoch- und Herunterladen von Daten bei Netzwerkzustandsänderung.
  • Geolokalisierung — Standortverfolgung in Fitness-Trackern und Navigations-Apps.
  • Medien — Audio- und Videowiedergabe im Hintergrund (Musik, Podcasts).
  • Benachrichtigungen — Verarbeitung von Push- und lokalen Benachrichtigungen.
  • Download — Herunterladen großer Dateien (Podcasts, Videos) im Hintergrund.

Warum mobile Betriebssysteme die Hintergrundausführung einschränken

Die Einschränkungen der Hintergrundausführung sind auf drei Faktoren zurückzuführen: Energieverbrauch, Geräteleistung und Benutzerdatenschutz. CPU und Funkmodule (Wi-Fi, Mobilfunkdaten) verbrauchen die meiste Energie — jeder Hintergrundprozess verkürzt die Akkulaufzeit.

Energieverbrauch und Akkulaufzeit

Google-Studien zeigen, dass Apps, die alle 5 Minuten Hintergrundaufgaben ausführen, die Akkulaufzeit des Geräts um 20–30% pro Tag reduzieren. Selbst optimierte Hintergrundoperationen mit einer Häufigkeit von einmal pro Stunde haben eine spürbare Auswirkung, wenn mehr als zwei solcher Apps vorhanden sind.

RAM und Leistung

Jede Hintergrund-App belegt RAM. Bei RAM-Knappheit entlädt das System Apps aus dem Speicher, was beim Zurückkehren des Benutzers zu einem Neustart führt. iOS verwendet den Jetsam-Algorithmus — einen Mechanismus zur erzwungenen Beendigung von Hintergrundprozessen bei Überschreitung des Speicherlimits. Android verwendet LMK (Low Memory Killer) mit einem ähnlichen Prinzip.

Benutzerdatenschutz

Ab Android 10 und iOS 13 verlangt das System von Apps, den Zweck der Hintergrundarbeit zu deklarieren. Android hat Beschränkungen für das Starten von Broadcast Receivern im Hintergrund eingeführt. iOS erfordert die Angabe des Background Mode in den Capabilities des Projekts. Der Benutzer kann die Hintergrundausführung für jede App in den Einstellungen deaktivieren.

OSVersionEinschränkungAuswirkung
Android8.0IMPLICIT_BROADCAST verboten67% der Hintergrund-Broadcasts defekt
Android9.0Doze verbessertNetzwerkaufrufe eingeschränkt
Android12+Foreground Service eingeschränktStart aus Hintergrund verboten
iOS7+Background App RefreshPeriodische Aktualisierungsfenster
iOS13+BGTaskSchedulerPlanung statt Ausführung

Hintergrundausführung auf Android: WorkManager und Foreground Service

Android bietet mehrere Mechanismen für die Hintergrundausführung, die jeweils eine andere Kategorie von Aufgaben lösen. WorkManager ist die empfohlene API für verzögerte und periodische Aufgaben. Foreground Service dient der sofortigen Ausführung mit einer sichtbaren Benachrichtigung. JobScheduler ist eine Low-Level-Alternative zu WorkManager.

WorkManager — Universelle Lösung

WorkManager ist Teil von Android Jetpack und bietet Hintergrundaufgabenausführung mit Garantie für den Abschluss auch nach einem Geräteneustart. Die API wählt den optimalen Ausführungszeitpunkt unter Berücksichtigung des Netzwerkstatus, des Akkuladestands und des Doze-Modus. WorkManager ist mit API 14+ kompatibel und ersetzt die veralteten AlarmManager und JobScheduler.

Foreground Service — Für langlaufende Operationen

Wenn eine App eine für den Benutzer sichtbare Aufgabe ausführen muss (Musikwiedergabe, Geolokalisierungsaufzeichnung), wird Foreground Service verwendet. Der Dienst zeigt eine dauerhafte Benachrichtigung in der Statusleiste und hat eine höhere Priorität — das System beendet ihn erst, wenn die Aufgabe abgeschlossen ist. Ab Android 13 ist die Berechtigung POST_NOTIFICATIONS erforderlich.

Doze-Modus und Akkuoptimierung

Ab Android 6.0 wechselt das Gerät bei Inaktivität in den Doze-Modus. In diesem Modus werden Netzwerkoperationen, Synchronisation und JobScheduler zurückgestellt. WorkManager passt sich automatisch an Doze an — Aufgaben werden während des nächsten Wartungsfensters ausgeführt, wenn das Gerät zur Wartung aufwacht.

Hintergrundausführung auf iOS: Background Tasks und App Refresh

iOS verfolgt einen strengeren Ansatz für die Hintergrundausführung. Background App Refresh ist der primäre Mechanismus für periodische Datenaktualisierungen. BGTaskScheduler ist die API zur Planung von Aufgaben basierend auf dem Systemzustand. Für langlaufende Operationen stehen Background Modes zur Verfügung: audio, location, voip, fetch und processing.

Background App Refresh

Background App Refresh ermöglicht es der App, alle 15–30 Minuten aufzuwachen, um Daten zu synchronisieren. Die Aufwachzeit hängt vom Benutzerverhalten ab — das System analysiert, wie oft der Benutzer die App öffnet. Benutzer können diese Funktion für einzelne Apps in den Einstellungen — Allgemein — Background App Refresh deaktivieren.

BGTaskScheduler — Moderner Ansatz

Ab iOS 13 hat BGTaskScheduler die veralteten performFetch und beginBackgroundTask ersetzt. Die App registriert Aufgaben mit einer Kennung und einem Mindestintervall, und das System bestimmt den optimalen Ausführungszeitpunkt. Aufgaben werden in zwei Typen unterteilt: BGProcessingTask (lang, 10+ Minuten) und BGAppRefreshTask (kurz, bis zu 30 Sekunden).

Ausführungszeitbegrenzungen

iOS weist begrenzte Zeit für die Ausführung von Hintergrundaufgaben zu — bis zu 30 Sekunden für BGAppRefreshTask und bis zu 10 Minuten für BGProcessingTask. Bei Überschreitung des Limits beendet das System die Aufgabe zwangsweise. Der Entwickler muss den Expiration Handler aufrufen, um Zwischenergebnisse zu speichern.

Codebeispiele: Android WorkManager

Sehen wir uns eine praktische Implementierung der Hintergrundausführung auf Android mit WorkManager an. Ein Beispiel für die Datensynchronisation alle 8 Stunden mit Netzwerkzustandsbewusstsein. WorkManager garantiert die Aufgabenausführung auch nach einem Geräteneustart.

kotlin
class SyncWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
    override fun doWork(): Result {
        return try {
            syncDataToServer()
            Log.d("Sync", "Daten synchronisiert")
            Result.success()
        } catch (e: Exception) {
            Result.retry()
        }
    }
}

// Periodische Aufgabe alle 8 Stunden ausführen
val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.CONNECTED)
    .setRequiresCharging(false)
    .build()

val syncRequest = PeriodicWorkRequestBuilder<SyncWorker>(
    8, TimeUnit.HOURS
).setConstraints(constraints).build()

WorkManager.getInstance(context).enqueue(syncRequest)

Foreground Service mit Benachrichtigung

Für langlaufende, für den Benutzer sichtbare Operationen verwenden Sie Foreground Service. Ein Beispiel für einen Dateidownload mit Fortschritt in der Benachrichtigung. Der Dienst ruft startForeground() mit einer Benachrichtigung auf, die nicht entfernt werden kann. Bei Download-Abschluss — stopForeground(STOP_FOREGROUND_REMOVE).

kotlin
class DownloadService : Service() {
    override fun onStartCommand(intent: Intent?, flags: Int, id: Int): Int {
        startForeground(NOTIFICATION_ID, createNotification())
        downloadFile()
        stopForeground(STOP_FOREGROUND_REMOVE)
        stopSelf()
        return START_NOT_STICKY
    }
    private fun createNotification(): Notification {
        return NotificationCompat.Builder(this, CHANNEL_ID)
            .setContentTitle("Datei herunterladen")
            .setSmallIcon(android.R.drawable.ic_download)
            .build()
    }
}

Codebeispiele: iOS BGTaskScheduler

Auf iOS wird die Hintergrundausführung über BGTaskScheduler konfiguriert. Ein Beispiel für die Registrierung und Ausführung einer Inhaltsaktualisierungsaufgabe. Die App muss die Aufgabenkennung in Info.plist registrieren und submit aufrufen, wenn die Aufgabe geplant werden soll.

swift
import BackgroundTasks

func registerBackgroundTask() {
    BGTaskScheduler.shared.register(
        forTaskWithIdentifier: "com.app.refresh",
        using: nil
    ) { task in
        self.handleAppRefresh(task: task as! BGAppRefreshTask)
    }
}

func scheduleAppRefresh() {
    let request = BGAppRefreshTaskRequest(
        identifier: "com.app.refresh"
    )
    request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60)
    try? BGTaskScheduler.shared.submit(request)
}

func handleAppRefresh(task: BGAppRefreshTask) {
    scheduleAppRefresh()
    task.expirationHandler = {
        // Zwischendaten speichern
        cacheCurrentState()
    }
    fetchLatestData {
        task.setTaskCompleted(success: true)
    }
}

Background Processing Task

Für langlaufende Operationen (Cache-Bereinigung, Datenverarbeitung) verwenden Sie BGProcessingTask. Das System gewährt bis zu 10 Minuten für die Ausführung. Wird nur ausgeführt, wenn das Gerät lädt und mit Wi-Fi verbunden ist. Erfordert eine separate Kennung in Info.plist und Registrierung über register(forTaskWithIdentifier:).

swift
func scheduleProcessing() {
    let request = BGProcessingTaskRequest(
        identifier: "com.app.cleanup"
    )
    request.requiresExternalPower = true
    request.requiresNetworkConnectivity = true
    request.earliestBeginDate = Date(timeIntervalSinceNow: 24 * 60 * 60)
    try? BGTaskScheduler.shared.submit(request)
}

Vergleich der Android- und iOS-Ansätze

Android und iOS unterscheiden sich grundlegend in ihrer Philosophie der Hintergrundausführung. Android bietet flexible Werkzeuge mit mehr Kontrolle, erfordert aber vom Entwickler die Wahl der richtigen API. iOS schränkt die Möglichkeiten ein, garantiert aber stabile Leistung und Akkulaufzeit für den Benutzer.

KriteriumAndroidiOS
Empfohlene APIWorkManagerBGTaskScheduler
Maximale AufgabendauerUnbegrenzt (Foreground Service)30 s / 10 min (processing)
Periodische AufgabenJa, über PeriodicWorkRequestJa, über BGAppRefreshTask
AusführungsgarantieJa, auch nach NeustartNein — System entscheidet, wann
Netzwerkzugriff im HintergrundDurch Doze-Modus eingeschränktÜber URLSession mit background config
Geolokalisierung im HintergrundForeground Service + BerechtigungBackground Mode location + NSLocation
Audio im HintergrundForeground Service mit MedienbenachrichtigungBackground Mode audio + AVAudioSession

Wann Android WorkManager wählen

WorkManager ist optimal für Aufgaben, die unabhängig vom App-Zustand abgeschlossen werden müssen: Datensynchronisation, Analytics-Versand, Warteschlangenverarbeitung. Die API garantiert die Ausführung auch nach dem Ausschalten des Geräts — die Aufgabe wird nach dem Start neu geplant.

Wann iOS BGTaskScheduler wählen

BGTaskScheduler eignet sich für Aufgaben, die das System zu einem beliebigen günstigen Zeitpunkt ausführen kann: Herunterladen neuer Inhalte, Aktualisieren von Widgets, Leeren des Caches. Nicht geeignet für dringende Operationen — das System verzögert die Aufgabe, wenn das Gerät im Doze-Modus ist oder der Akku schwach ist.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Background Execution und Background Modes?

Background Execution ist ein allgemeiner Begriff, der jeglichen im Hintergrund ausgeführten Code beschreibt. Background Modes ist ein spezifischer iOS-Mechanismus, der es einer App ermöglicht, bestimmte Arten von Hintergrundoperationen durchzuführen: Audio, Geolokalisierung, VoIP, fetch. Android verwendet einen ähnlichen Ansatz über Foreground Service-Typen.

Warum wird meine App nach 30 Sekunden im Hintergrund beendet?

Auf iOS ist dies die Standardbegrenzung für BGAppRefreshTask. Das System beendet die Aufgabe zwangsweise bei Erreichen des Limits. Auf Android tritt eine ähnliche Situation auf, wenn die App WorkManager oder Foreground Service nicht verwendet — ein normaler Service wird vom System nach dem Wechsel in den Hintergrund beendet.

Wie kann man die Aufgabenausführung auf beiden Plattformen garantieren?

Auf Android verwenden Sie WorkManager — er garantiert die Ausführung auch nach einem Neustart. Auf iOS kann die Ausführung nicht garantiert werden — das System entscheidet, wann die Aufgabe ausgeführt wird. Die einzige Möglichkeit, die Ausführung zu garantieren, ist die Verwendung von Background Modes (audio, location) mit einem sichtbaren Indikator für den Benutzer.

Wie überprüft man, ob die Hintergrundausführung erlaubt ist?

Auf iOS rufen Sie UIApplication.shared.backgroundRefreshStatus auf — Status .available, .denied oder .restricted. Auf Android verwenden Sie PowerManager.isIgnoringBatteryOptimizations(), um die Befreiung von der Akkuoptimierung zu überprüfen. Für WorkManager ist keine Überprüfung erforderlich — die API behandelt die Systemeinschränkungen selbst.

Welche Alternativen zur Hintergrundausführung gibt es?

Push-Benachrichtigungen sind der primäre Mechanismus zum Auslösen von Aktionen ohne Hintergrundcode. Auf iOS stehen PushKit für VoIP und Silent Push für Datenaktualisierungen zur Verfügung. Auf Android — High Priority FCM und Notification Trampoline. WebSockets über Foreground Service sind eine Alternative für Echtzeit-Apps.

Zusammenfassung

  • Background Execution — Mechanismus zur Codeausführung bei minimierter App, entscheidend für Synchronisation, Download und Benachrichtigungen.
  • Android bietet WorkManager (garantierte Ausführung), Foreground Service (langlaufende sichtbare Aufgaben) und Doze-Modus-Einschränkungen.
  • iOS verwendet BGTaskScheduler (Planung), Background App Refresh (periodische Aktualisierungen) und Background Modes für Medien und Geolokalisierung.
  • Energieverbrauch — Hauptgrund für Einschränkungen: nicht optimierte Hintergrundprozesse reduzieren die Akkulaufzeit um 20–30%.
  • Datenschutz — beide Plattformen erfordern explizite Berechtigungen (Android POST_NOTIFICATIONS, iOS Background Modes) und Benutzerbenachrichtigung.
  • WorkManager ist die einzige API mit Ausführungsgarantie nach Geräteneustart; BGTaskScheduler verlässt sich auf Systementscheidungen.
  • Verwenden Sie Foreground Service auf Android und Background Modes auf iOS für langlaufende, in der Statusleiste sichtbare Operationen.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch