Language: HTML | XAML

So wird’s gemacht: Ausführen einer Hintergrundaufgabe für einen Zeitgeber (XAML)

Applies to Windows and Windows Phone

Hier erfahren Sie, wie Sie eine einmalige Hintergrundaufgabe planen oder eine regelmäßige Hintergrundaufgabe ausführen können, die mit der sperrbildschirmfähigen 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. Eine Hintergrundaufgabe kann beispielsweise verwendet werden, um regelmäßige Kachel- oder Signalupdates bereitzustellen.

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 Infos 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 wird, gibt FreshnessTime die Häufigkeit an, mit der die Hintergrundaufgabe ausgeführt wird.

    Unter Windows 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:

    
    TimeTrigger hourlyTrigger = new TimeTrigger(60, false);
    
    

Schritt 2: (Optional) Hinzufügen einer Bedingung

  • Erstellen Sie bei Bedarf eine Hintergrundaufgabenbedingung, 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, sobald der Benutzer aktiv ist. Eine Liste mit möglichen Bedingungen finden Sie unter SystemConditionType.

    
    SystemCondition userCondition = new SystemCondition(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 einzufügen, bevor versucht wird, die TimeTrigger-Hintergrundaufgabe zu registrieren.

    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:

    
    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:

    
    string entryPoint = “Tasks.ExampleBackgroundTaskClass”;
    string taskName   = “Example hourly background task”;
    
    BackgroundTaskRegistration 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 App-Manifest
How to debug a background task
Richtlinien und Prüflisten für Hintergrundaufgaben

 

 

Anzeigen:
© 2014 Microsoft