Unterstützen von Apps durch Hintergrundaufgaben (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In den Themen in diesem Abschnitt erfahren Sie, wie Sie einfachen Code im Hintergrund ausführen, indem Sie mit Hintergrundaufgaben auf Trigger reagieren. Hintergrundaufgaben sind gesonderte JavaScript-Dateien, die vom Betriebssystem im Hintergrund ausgeführt werden. Sie können mit Hintergrundaufgaben Funktionen bereitstellen, wenn Ihre App gerade unterbrochen ist oder nicht ausgeführt wird. Sie können Hintergrundaufgaben in JavaScript auch mithilfe eines Timers ausführen.

Hintergrundaufgaben verwenden den Windows.UI.WebUI.WebUIBackgroundTaskInstance-Namespace, um Informationen zu der aktuellen Instanz der Hintergrundaufgabe abzurufen. Sie registrieren Hintergrundaufgaben mithilfe eines BackgroundTaskBuilder-Objekts. Die JavaScript-Datei für die Hintergrundaufgabe wird bei der Registrierung der Hintergrundaufgabe als Einstiegspunkt angegeben.

Um Ihnen den Einstieg in Hintergrundaufgaben zu erleichtern, lesen Sie die Infos unter Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe.

Hintergrundaufgaben für Systemereignisse

Ihre App kann auf Systemereignisse reagieren, indem mit SystemTrigger eine Hintergrundaufgabe registriert wird. Eine App kann alle folgenden Systemereignisauslöser (die in SystemTriggerType definiert sind) verwenden, ohne dafür auf dem Sperrbildschirm platziert zu werden.

Auslösername Beschreibung

InternetAvailable

Das Internet wird verfügbar.

NetworkStateChange

Eine Netzwerkänderung findet statt, z. B. werden die Kosten oder Verbindungsoptionen geändert.

OnlineIdConnectedStateChange

Die mit dem Konto verbundene Online-ID wird geändert.

SmsReceived

Auf einem installierten mobilen Breitbandgerät geht eine SMS ein.

TimeZoneChange

Die Zeitzone auf dem Gerät ändert sich (z. B. wenn das System die Uhrzeit auf die Sommerzeit umstellt).

 

Weitere Infos finden Sie unter Reagieren auf Systemereignisse mit Hintergrundaufgaben.

Bedingungen für Hintergrundaufgaben

Über Bedingungen können Sie steuern, wann die Hintergrundaufgaben ausgeführt werden, selbst nachdem sie ausgelöst wurde. Nach dem Auslösen wird die Hintergrundaufgabe erst ausgeführt, wenn alle ihre Bedingungen erfüllt sind. Sie können die folgenden Bedingungen verwenden (dargestellt durch die SystemConditionType-Enumeration).

Bedingungsname Beschreibung
InternetAvailable

Das Internet muss verfügbar sein.

InternetNotAvailable

Das Internet darf nicht verfügbar sein.

SessionConnected

Die Sitzung muss verbunden sein.

SessionDisconnected

Die Sitzung darf nicht verbunden sein.

 

Weitere Infos finden Sie unter Festlegen von Bedingungen für die Ausführung einer Hintergrundaufgabe.

App-Manifestanforderungen

Damit Ihre App eine Hintergrundaufgabe registrieren kann, muss sie im App-Manifest deklariert werden. Weitere Infos finden Sie unter So wird's gemacht: Deklarieren von Hintergrundaufgaben im Anwendungsmanifest.

Hintergrundaufgaben für sperrbildschirmfähige Apps

Sie können Apps auf dem Sperrbildschirm platzieren, um dem Benutzer Informationen in Echtzeit bereitzustellen. Mit den folgenden Echtzeittriggern können Sie einfachen benutzerdefinierten Code im Hintergrund von Apps auf dem Sperrbildschirm platzieren:

Steuerkanal: Hintergrundaufgaben können eine Verbindung aufrechterhalten und Nachrichten auf dem Steuerkanal mithilfe des ControlChannelTrigger empfangen. Weitere Informationen finden Sie im Thema zum Verwenden des Steuerkanaltriggers. (Beachten Sie, dass Hintergrundaufgaben für den Steuerkanal nur in C# oder C++ implementiert werden können.) ControlChannelTrigger wird unter Windows Phone nicht unterstützt.

Timer: Hintergrundaufgaben können in einem Intervall von bis zu 15 Minuten ausgeführt werden, und sie können mithilfe des TimeTrigger auf die Ausführung zu einer bestimmten Zeit festgelegt werden. Weitere Informationen finden Sie im Thema zum Ausführen von Hintergrundaufgaben auf einem Timer.

Pushbenachrichtigung: Hintergrundaufgaben reagieren auf den PushNotificationTrigger, um unformatierte Pushbenachrichtigungen zu empfangen. Weitere Informationen finden Sie unter So wird's gemacht: Empfangen einer unformatierten Benachrichtigung.

Hinweis  Nur Windows Store-Apps. Der Benutzer muss Ihre App auf dem Sperrbildschirm platzieren, bevor diese Hintergrundaufgaben verwenden kann. Apps fordern den Zugriff auf den Sperrbildschirm durch Aufruf von RequestAccessAsync an. Damit zeigen Sie ein Dialogfeld an, in dem der Benutzer "zulassen" oder "ablehnen" können, ob Ihre App auf dem Sperrbildschirm angezeigt wird. Eine App darf nur einmal den Zugriff auf den Sperrbildschirm anfordern. Nachfolgende Aufrufe von RequestAccessAsync werden ignoriert.

Hinweis  

Windows Phone Store-Apps können auch dann alle unterstützten Hintergrundtrigger verwenden, wenn sie nicht auf dem Sperrbildschirm angeheftet sind. Eine Smartphone-App muss aber RequestAccessAsync aufrufen, bevor Typen von Hintergrundtriggern registriert werden.

Um sicherzustellen, dass Ihre Windows Phone-App nach dem Freigeben eines Updates weiterhin ordnungsgemäß ausgeführt wird, rufen Sie RemoveAccess und RequestAccessAsync auf, wenn Ihre App nach dem Aktualisieren startet. Weitere Infos finden Sie unter Richtlinien für Hintergrundaufgaben (Windows-Runtime-Apps).

Systemereignistrigger für sperrbildschirm fähige Apps

Hinweis  Die SystemTriggerType-Enumeration enthält die folgenden Systemereignistrigger, die von sperrbildschirmfähigen Apps verwendet werden können. Damit eine App eine Hintergrundaufgabe für diese Systemereignistrigger registrieren kann, muss sie auf dem Sperrbildschirm platziert werden.

Auslösername Beschreibung

UserPresent

Die Hintergrundaufgabe wird ausgelöst, wenn der Benutzer anwesend ist.

UserAway

Die Hintergrundaufgabe wird ausgelöst, wenn der Benutzer abwesend ist.

ControlChannelReset

Die Hintergrundaufgabe wird ausgelöst, wenn ein Steuerkanal zurückgesetzt wird.

SessionConnected

Die Hintergrundaufgabe wird ausgelöst, wenn die Sitzung eine Verbindung herstellt.

 

Die folgenden Systemereignistrigger gelten auch für sperrbildschirmfähige Apps. Sie können diese Trigger auch dann registrieren, wenn sich die App nicht auf dem Sperrbildschirm befindet. Dadurch ist es auch möglich, zu ermitteln, wenn der Benutzer die App auf dem Sperrbildschirm hinzugefügt oder entfernt hat.

Auslösername Beschreibung

LockScreenApplicationAdded

Dem Sperrbildschirm wird eine App-Kachel hinzugefügt.

LockScreenApplicationRemoved

Eine App-Kachel wird vom Sperrbildschirm entfernt.

 

 

Ressourcenbeschränkungen für Hintergrundaufgaben

Hintergrundaufgaben sind einfach. Beschränken Sie die Ausführung von Hintergrundaufgaben auf ein Minimum, um die beste Benutzererfahrung für Vordergrund-Apps und Akkulaufzeit sicherzustellen. Dies wird erzwungen, indem auf Hintergrundaufgaben Ressourcenbeschränkungen angewendet werden:

  • Die CPU-Nutzung wird wie folgt beschränkt.

    CPU-Kontingent Aktualisierungszeit
    Windows-App nicht auf Sperrbildschirm

    1 Sekunde

    2 Stunden

    Windows-App auf dem Sperrbildschirm

    2 Sekunden

    15 Minuten

    Windows Phone-App

    2 Sekunden

    15 Minuten

     

  • Im Akkubetrieb (Gleichstrom) ist auch die Netzwerkdatennutzung für Hintergrundaufgaben begrenzt. Dieser Grenzwert ist eine Funktion der von der Netzwerkschnittstelle verbrauchten Energie und variiert daher abhängig vom Gerät und der Netzwerkumgebung, er kann jedoch geschätzt werden.

    In der folgenden Tabelle wird der Netzwerkdatendurchsatz unter der Annahme eines WiFi-Netzwerks mit Ressourcenbeschränkung und durchschnittlich 1 Mbit/s Datendurchsatz charakterisiert. Um das korrekte Limit zu schätzen, multiplizieren Sie mit den durchschnittlichen Megabit pro Sekunde (Mbit/s) der Verbindung. Eine App auf dem Sperrbildschirm könnte bei einer WiFi-Verbindung mit 10 Mbit/s z. B. 25 MB an Daten alle 2 Stunden verbrauchen. Die beispielhafte WiFi-Schnittstelle nimmt minimale Störungen an.

    Aktualisierungszeitraum 15 Minuten 2 Stunden Täglich
    Datenlimit (auf dem Sperrbildschirm) 0,469 MB n/v 45 MB
    Datenlimit (nicht auf dem Sperrbildschirm) n/v 0,625 MB 0,1875 MB

     

    Hinweis  Das Limit für die Netzwerkdatennutzung wird angehoben, wenn das Gerät angeschlossen wird (Netzstrom), das CPU-Kontingent bleibt jedoch gleich. Die Limits für CPU- und Netzwerknutzung werden auch dann für die Hintergrundaufgaben der App aufgehoben, wenn der Benutzer im Vordergrund mit der App interagiert.

     

Weitere Ressourcenbeschränkungen für Hintergrundaufgaben mit Windows Phone Store-Apps

Zusätzlich zu den Ressourcenbeschränkungen, die im vorherigen Abschnitt beschrieben wurden, verfügen die Hintergrundaufgaben für Windows Phone Store-Apps über die folgenden Beschränkungen.

Arbeitsspeicherbeschränkungen

Aufgrund der Ressourcenbeschränkungen für den Smartphone-Formfaktor (besonders bei Geräten mit wenig Arbeitsspeicher) gilt für Hintergrundaufgaben für Windows Phone-Apps ein Arbeitsspeicherlimit, mit dem die maximale Menge an Arbeitsspeicher vorgegeben wird, die von der Hintergrundaufgabe verwendet werden kann. Falls Ihre Hintergrundaufgabe dieses Limit überschreitet, wird sie sofort beendet. Die Arbeitsspeicherzuordnung richtet sich nach dem Typ der Hintergrundaufgabe sowie nach dem gesamten Systemarbeitsspeicher des Geräts, auf dem sie ausgeführt wird. Sie sollten diese Limits auch beim Entwickeln und Testen der App beachten. Außerdem können Sie die MemoryManager-APIs nutzen, um die aktuelle Speicherauslastung und das Limit abzufragen und die Nutzung zur Laufzeit anzupassen. In der folgenden Tabelle sind die Arbeitsspeicher-Obergrenzen für die angegebenen Typen von Hintergrundaufgaben in MB aufgeführt, und zwar für die unterschiedlichen Mengen des gesamten Systemarbeitsspeichers auf dem Gerät.

Typ der Hintergrundaufgabe 512 MB 1 GB 2 GB oder mehr
Position 16 30 40
Bluetooth 16 16 16
Wartung abgeschlossen 10 10 10
Andere Hintergrundaufgaben 16 30 40
Limit beim Debuggen 30 40 50

 

Limit pro Gerät für Apps mit Hintergrundaufgaben für Geräte mit wenig Arbeitsspeicher

Für Smartphones mit 512 MB Arbeitsspeicher gilt ein Limit für die Anzahl von Apps, die gleichzeitig auf einem Gerät installierbar sind und Hintergrundaufgaben nutzen können. Wenn diese Zahl überschritten wird, tritt für den Aufruf von RequestAccessAsync, der zum Registrieren aller Hintergrundaufgaben unter Windows Phone erforderlich ist, ein Fehler auf.

Stromsparmodus

Wenn unter Windows Phone der Stromsparmodus aktiviert ist, wird die Ausführung von Hintergrundaufgaben verhindert, falls das Gerät nicht mit einer externen Stromquelle verbunden ist und der Akku eine angegebene Restmenge unterschreitet. Sie können Hintergrundaufgaben aber weiterhin registrieren.

Wartungsauslöser

Mit dem Wartungsauslöser kann Ihre App auch alle 15 Minuten Aufgaben ausführen. Ohne eine Platzierung auf dem Sperrbildschirm werden Wartungsaufgaben immer dann ausgeführt, wenn das Gerät an die Stromversorgung angeschlossen wird. Weitere Informationen finden Sie unter So wird's gemacht: Verwenden von Wartungsauslösern.

Hintergrundaufgaben für Sensoren und Geräte

Ihre App kann über eine Hintergrundaufgabe mit der DeviceUseTrigger-Klasse auf Sensoren und Peripheriegeräte zugreifen. Dieser Auslöser ist für zeitaufwändige Vorgänge wie Datensynchronisierung oder Überwachung geeignet. Im Gegensatz zu Aufgaben für Systemereignisse kann eine DeviceUseTrigger-Aufgabe nur ausgelöst werden, wenn Ihre App im Vordergrund ausgeführt wird, und es können keine Bedingungen festgelegt werden. Je nach Ausführungsort (PC oder Smartphone) unterstützt eine DeviceUseTrigger-Hintergrundaufgabe unterschiedliche APIs und unterliegt unterschiedlichen Richtlinien. Weitere Informationen zu diesen Unterschieden finden Sie unter Zugreifen auf Sensoren und Geräte über eine Hintergrundaufgabe.

Einige kritische Gerätevorgänge (wie etwa zeitaufwändige Firmwareupdates) können mithilfe von DeviceUseTrigger nicht durchgeführt werden. Diese Vorgänge können nur auf dem PC und nur von einer privilegierten App durchgeführt werden, für die DeviceServicingTrigger verwendet wird. Eine privilegierte App ist eine App, die vom Gerätehersteller dafür autorisiert wurde, diese Vorgänge auszuführen. Mithilfe von Metadaten wird angegeben, welche App, falls zutreffend, als privilegierte App für ein Gerät festgelegt wurde. Weitere Informationen finden Sie unter Gerätesynchronisierung und -update für Windows Store-Geräte-Apps.

Verwalten von Hintergrundaufgaben

Hintergrundaufgaben können mit Ereignissen und lokalem Speicher Fortschritt, Beendigung und Abbruch an die App melden. Eine App kann außerdem die von einer Hintergrundaufgabe ausgelösten Ausnahmen auffangen und die Registrierung von Hintergrundaufgaben während eines App-Updates verwalten. Weitere Informationen:

So wird's gemacht: Behandeln einer abgebrochenen Hintergrundaufgabe

So wird's gemacht: Abrufen einer Liste mit ausstehenden Hintergrundaufgaben

So wird's gemacht: Überwachen des Status und Abschlusses von Hintergrundaufgaben

So wird's gemacht: Verwenden des ServicingComplete-Triggers

Verwandte Themen

Konzeptionelle Richtlinien für Multitasking in Windows 8

Einführung in Hintergrundaufgaben

Starten, Fortsetzen und Multitasking

UI-Richtlinien für den Sperrbildschirm

Anzeigen von Kacheln auf dem Sperrbildschirm

Richtlinien und Prüfliste für Kacheln auf dem Sperrbildschirm

Ratschläge für zugehörige Hintergrundaufgaben

Richtlinien und Prüfliste für Hintergrundaufgaben

So wird's gemacht: Debuggen einer Hintergrundaufgabe

So wird's gemacht: Auslösen von Anhalte-, Fortsetzungs- und Hintergrundereignissen in Windows Store-Apps (beim Debuggen)

Zugreifen auf Sensoren und Geräte über eine Hintergrundaufgabe

Gerätesynchronisierung und -update für Windows Store-Geräte-Apps