So wird’s gemacht: Ausführen einer Hintergrundaufgabe für einen Zeitgeber (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 einmalige Hintergrundaufgabe planen oder eine regelmäßige Hintergrundaufgabe ausführen können, die mit der Windows Store-App verknüpft ist. Wenn Ihre App vom Benutzer auf dem Sperrbildschirm platziert wird, kann diese eine Hintergrundaufgabe registrieren, die unter Windows maximal alle 15 Minuten und unter Windows Phone alle 30 Minuten ausgeführt werden kann. Beispielsweise können mit einer Hintergrundaufgabe regelmäßige Kachel- oder Signalaktualisierungen bereitgestellt werden.
Wissenswertes
Technologien
Voraussetzungen
- In diesem Beispiel wird davon ausgegangen, dass eine Hintergrundaufgabe regelmäßig oder zu einer bestimmten Uhrzeit ausgeführt werden muss, um die App zu unterstützen. Unter Windows wird eine Hintergrundaufgabe mit einem TimeTrigger-Element nur ausgeführt, wenn Sie per Aufruf von RequestAccessAsync angefordert haben, dass Ihre App auf dem Sperrbildschirm platziert werden soll, und der Benutzer die Aufforderung akzeptiert. Unter Windows Phone müssen Sie RequestAccessAsync aufrufen, aber es wird keine Aufforderung für Benutzer angezeigt. Weitere Informationen finden Sie unter Anzeigen von Kacheln auf dem Sperrbildschirm.
- Dieses Thema setzt voraus, dass Sie bereits eine Hintergrundaufgabenklasse erstellt haben, einschließlich der Run-Methode, die als für die Hintergrundaufgabe als Einstiegspunkt verwendet wird. Um schnell mit dem Erstellen einer Hintergrundaufgabe zu beginnen, lesen Sie die Informationen unter Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe. Ausführlichere Informationen zu Bedingungen und Triggern finden Sie unter Unterstützen der App mit Hintergrundaufgaben.
Anweisungen
Schritt 1: Erstellen eines Zeitauslösers
Erstellen Sie einen neuen Zeitauslöser (TimeTrigger). Der zweite Parameter (OneShot) gibt an, ob die Hintergrundaufgabe einmalig oder regelmäßig ausgeführt wird. Wenn OneShot auf "true" festgelegt wird, gibt der erste Parameter (FreshnessTime) die Anzahl der Minuten an, die gewartet werden soll, bevor eine Hintergrundaufgabe geplant wird. Wenn OneShot auf "false" festgelegt ist, gibt FreshnessTime die Häufigkeit an, mit der die Hintergrundaufgabe ausgeführt wird.
In Windows 8 ist ein Zeitgeber integriert, der Hintergrundaufgaben in einem 15-Minuten-Intervall ausführt. Beachten Sie, dass das Intervall unter Windows Phone 30 Minuten beträgt.
Wenn FreshnessTime auf 15 Minuten und OneShot auf "true" festgelegt ist, wird die Aufgabe einmalig innerhalb der ersten 15 Minuten nach dem Registrierungszeitpunkt ausgeführt.
Wenn FreshnessTime auf 15 Minuten und OneShot auf "false" festgelegt ist, wird die Aufgabe in den ersten 15 Minuten nach dem Registrierungszeitpunkt und dann regelmäßig alle 15 Minuten ausgeführt.
Hinweis Wenn FreshnessTime auf weniger als 15 Minuten festgelegt ist, wird bei einem Registrierungsversuch der Hintergrundaufgabe eine Ausnahme ausgelöst.
Dieser Auslöser veranlasst beispielsweise, dass eine Hintergrundaufgabe einmal pro Stunde ausgeführt wird:
var hourlyTrigger = new Windows.ApplicationModel.Background.TimeTrigger(60, 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 ist die Bedingung auf UserPresent gesetzt, damit die ausgelöste Aufgabe nur ausgeführt wird, wenn der Benutzer aktiv ist. Eine Liste mit möglichen Bedingungen finden Sie unter SystemConditionType.
Der folgende Code fügt der Hintergrundaufgabe eine Bedingung hinzu:
var userCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserPresent);
Schritt 3: Anfordern des Zugriffs auf den Sperrbildschirm
Holen Sie durch Aufrufen von RequestAccessAsync vom Benutzer die Erlaubnis ein, die App auf dem Sperrbildschirm hinzuzufügen, bevor ein Registrierungsversuch für die TimeTrigger-Hintergrundaufgabe erfolgt.
Unter Windows wird mit dem folgenden Code ein Dialogfeld angezeigt, in dem der Benutzer aufgefordert wird, Ihre App dem Sperrbildschirm hinzuzufügen. Auf einem Smartphone ist dies lediglich die Anforderung an das System, Ihrer App die Ausführung von Hintergrundaufgaben zu gestatten:
Windows.ApplicationModel.Background.BackgroundExecutionManager.RequestAccessAsync();
Hinweis Eine App kann den Zugriff auf den Sperrbildschirm nur einmal anfordern. Der Benutzer kann zum Festlegen seiner Einstellung nur eine der beiden Optionen auswählen. Weitere Aufrufe von RequestAccessAsync werden ignoriert.
Schritt 4: 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 = “Example hourly background task”;
var task = RegisterBackgroundTask(entryPoint, taskName, hourlyTrigger, userCondition);
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
Hinweis Unter Windows werden Hintergrundaufgaben nur mit einem Zeitauslöser registriert, wenn der Benutzer die App dem Sperrbildschirm hinzugefügt hat (oder wenn er bei einer Zugriffsanforderung durch die App eine Berechtigung bereitgestellt hat). Weitere Informationen finden Sie unter Anzeigen von Kacheln auf dem Sperrbildschirm. Hintergrundaufgaben können mit Auslösern verknüpft werden, für die sich die App nicht auf dem Sperrbildschirm befinden muss. Die verschiedenen Arten der Hintergrundaufgabenauslöser werden unter Unterstützen der App mit Hintergrundaufgaben erläutert.
Verwandte Themen
Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe
So wird's gemacht: Registrieren einer Hintergrundaufgabe
So wird's gemacht: Deklarieren von Hintergrundaufgaben im Anwendungsmanifest