So wird’s gemacht: Reagieren auf Systemereignisse mit 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]

Hier erfahren Sie, wie Sie eine Hintergrundaufgabe erstellen können, die auf Systemereignistrigger reagiert. Windows Store-Apps behalten die Benutzeroberfläche bei, auch wenn die App sich nicht im Vordergrund befindet. Hierzu wird der einfache benutzerdefinierte Code mit SystemTrigger-Ereignissen verknüpft. Dieser benutzerdefinierte Code wird in Hintergrundaufgaben ausgeführt.

Wissenswertes

Technologien

Voraussetzungen

  • Dieses Thema setzt voraus, dass Sie für Ihre App eine Hintergrundaufgabenklasse geschrieben haben und dass diese Aufgabe als Reaktion auf ein vom System ausgelöstes Ereignis ausgeführt werden muss, z. B. wenn das Internet verfügbar wird oder sich der Benutzer anmeldet. Ihre App muss sich nicht auf dem Sperrbildschirm befinden, um Hintergrundaufgaben auszuführen, die mit der SystemTrigger-Klasse und der MaintenanceTrigger-Klasse registriert wurden. Der Schwerpunkt dieses Themas liegt auf der SystemTrigger-Klasse. Weitere Informationen zum Schreiben einer Hintergrundaufgabenklasse finden Sie unter Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe.

Anweisungen

Schritt 1: Erstellen eines SystemTrigger-Objekts

Erstellen Sie in Ihrem App-Code ein neues SystemTrigger-Objekt. triggerType ist der erste Parameter und gibt den Typ des Systemereugnistriggers zur Aktivierung der Hintergrundaufgabe an. Eine Liste mit Ereignistypen finden Sie unter SystemTriggerType.

Der zweite Parameter (OneShot) gibt an, ob die Hintergrundaufgabe ausgeführt wird, sobald das Systemereignis das nächste Mal eintritt und Hintergrundaufgaben auslöst, oder ob die Hintergrundaufgabe beim Auslösen des Systemereignisses immer ausgeführt wird, bis die Registrierung der Aufgabe aufgehoben wird.

Der folgende Code gibt an, dass die Hintergrundaufgabe immer ausgeführt wird, wenn das Internet verfügbar wird:

var internetTrigger = new Windows.ApplicationModel.Background.SystemTrigger(InternetAvailable, false);

Schritt 2: (Optional) Hinzufügen einer Bedingung

Fügen Sie bei Bedarf eine Hintergrundaufgabenbedingung hinzu, um zu steuern, wann die Aufgabe ausgeführt wird. Eine Bedingung sorgt dafür, dass die Hintergrundaufgabe erst ausgeführt wird, wenn die Bedingung erfüllt ist. Weitere Informationen finden Sie unter So wird's gemacht: Festlegen von Bedingungen für die Ausführung einer Hintergrundaufgabe.

In diesem Beispiel wird die Bedingung auf UserPresent festgelegt, damit die Hintergrundaufgabe nur ausgeführt wird, wenn der Benutzer das Gerät aktiv verwendet (oder wenn der Benutzer verfügbar ist). Eine Liste der möglichen Hintergrundaufgabenbedingungen finden Sie unter SystemConditionType.

Der folgende Code fügt der Hintergrundaufgabe eine Bedingung hinzu:

var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemCondition.UserPresent);

Schritt 3: Registrieren der Hintergrundaufgabe

Registrieren Sie die Hintergrundaufgabe, indem Sie die Funktion zum Registrieren der Hintergrundaufgabe aufrufen. Weitere Informationen zum Registrieren von Hintergrundaufgaben finden Sie unter So wird's gemacht: Registrieren einer Hintergrundaufgabe.

Der folgende Code registriert die Hintergrundaufgabe:

var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Internet-based background task”;

var task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);

Hinweis  

In Windows Phone Store-Apps müssen Sie RequestAccessAsync aufrufen, bevor Sie versuchen, Hintergrundaufgaben zu registrieren. Unter Windows ist dieser Aufruf nur für die Hintergrundaufgaben erforderlich, die nur ausgeführt werden können, wenn sich Ihre App auf dem Sperrbildschirm befindet. Auf dem Telefon müssen Sie diese Methode vor dem Registrieren einer Hintergrundaufgabe einmal aufrufen.

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 (HTML).

Hinweis  

Ab Windows 8.1 werden Parameter für die Registrierung von Hintergrundaufgaben zum Zeitpunkt der Registrierung überprüft. Bei ungültigen Registrierungsparametern wird ein Fehler zurückgegeben. Ihre App muss Szenarios, in denen die Registrierung von Hintergrundaufgaben fehlschlägt, problemlos verarbeiten können. Verwenden Sie beispielsweise eine Bedingungsanweisung, um die App auf Registrierungsfehler zu prüfen, und führen Sie die fehlgeschlagene Registrierung mit anderen Parameterwerten erneut durch.

 

Anmerkungen

Laden Sie das Hintergrundaufgabenbeispiel herunter, um die Registrierung der Hintergrundaufgabe in Aktion zu sehen.

Hintergrundaufgaben können als Reaktion auf die Ereignisse SystemTrigger und MaintenanceTrigger ausgeführt werden, ohne auf dem Sperrbildschirm platziert zu werden. Dennoch ist das Deklarieren von Hintergrundaufgaben im Anwendungsmanifest erforderlich. Unter Windows Phone müssen Sie vor dem Registrieren einer Hintergrundaufgabe auch RequestAccessAsync aufrufen.

Sperrbildschirmfähige Apps können Hintergrundaufgaben registrieren, die auf die Ereignisse TimeTrigger, PushNotificationTrigger und NetworkOperatorNotificationTrigger reagieren. So können die Apps eine Echtzeitkommunikation mit dem Benutzer bereitstellen, auch wenn die App sich nicht im Vordergrund befindet. Weitere Informationen finden Sie unter Unterstützen der App mit Hintergrundaufgaben.

Verwandte Themen

Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe

So wird's gemacht: Registrieren einer Hintergrundaufgabe

So wird's gemacht: Festlegen von Bedingungen für die Ausführung einer Hintergrundaufgabe

So wird's gemacht: Verwenden von Wartungsauslösern

So wird's gemacht: Deklarieren von Hintergrundaufgaben im Anwendungsmanifest

So wird's gemacht: Debuggen einer Hintergrundaufgabe

Richtlinien und Prüflisten für Hintergrundaufgaben