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
Zugreifen auf Sensoren und Geräte über eine Hintergrundaufgabe
Gerätesynchronisierung und -update für Windows Store-Geräte-Apps