Language: HTML | XAML

So wird’s gemacht: Festlegen von Bedingungen für die Ausführung einer Hintergrundaufgabe (XAML)

Applies to Windows and Windows Phone

Hier erfahren Sie, wie Sie Bedingungen für das Ausführen einer Hintergrundaufgabe festlegen, damit diese nur ausgeführt wird, wenn dies angemessen ist. Einige Hintergrundaufgaben, die durch ein Ereignis ausgelöst werden, müssen zudem noch bestimmte Bedingungen erfüllen, damit sie erfolgreich ausgeführt werden können. Wenn Sie Ihre Hintergrundaufgabe registrieren, können Sie mit SystemConditionType eine oder mehrere Bedingungen angeben. Die Bedingung wird geprüft, nachdem der Auslöser aktiviert wurde. Die Hintergrundaufgabe wird in die Warteschlange eingereiht und erst ausgeführt, wenn alle erforderlichen Bedingungen erfüllt sind.

Wenn Sie Bedingungen für Hintergrundaufgaben festlegen, schonen Sie Akku und CPU-Laufzeit, da das unnötige Ausführen von Aufgaben verhindert wird. Wenn Ihre Hintergrundaufgabe z. B. nach einem Timer ausgeführt wird und eine Internetverbindung benötigt, fügen Sie die InternetAvailable-Bedingung zum TaskBuilder hinzu, bevor Sie die Aufgabe registrieren. So wird verhindert, dass die Aufgabe unnötig Systemressourcen nutzt und Akkustrom verbraucht, da die Aufgabe erst ausgeführt wird, wenn der Timer abgelaufen ist und das Internet verfügbar ist.

Wissenswertes

Technologien

Voraussetzungen

  • Dieses Thema setzt voraus, dass Sie Ihrer App bereits eine Hintergrundaufgabe zugeordnet haben und dass Ihre App Code enthält, der ein BackgroundTaskBuilder-Objekt namens taskBuilder erstellt.

Anweisungen

Erstellen eines SystemCondition-Objekts

Erstellen Sie vor dem Hinzufügen der Bedingung ein SystemCondition-Objekt, das die Bedingung darstellt, die zum Ausführen einer Hintergrundaufgabe erfüllt werden muss. Geben Sie im Konstruktor die zu erfüllende Bedingung an, indem Sie einen SystemConditionType-Enumerationswert angeben.

Der folgende Code erstellt ein SystemCondition-Objekt, das die Internetverfügbarkeit als Bedingung angibt:


SystemCondition internetCondition = new SystemCondition(SystemConditionType.InternetAvailable);

Hinzufügen des SystemCondition-Objekts zur Hintergrundaufgabe

Um die Bedingung hinzuzufügen, rufen Sie die AddCondition-Methode für das BackgroundTaskBuilder-Objekt auf, und übergeben Sie das SystemCondition-Objekt an die Methode.

Der folgende Code registriert die InternetAvailable-Bedingung für Hintergrundaufgaben beim TaskBuilder:


taskBuilder.AddCondition(internetCondition);

Registrieren der Hintergrundaufgabe

Sie können Ihre Hintergrundaufgabe jetzt mit der Register-Methode registrieren. Die Hintergrundaufgabe wird erst gestartet, wenn die angegebene Bedingung erfüllt ist.

Der folgende Code registriert das resultierende BackgroundTaskRegistration-Objekt:



BackgroundTaskRegistration task = taskBuilder.Register();

Hinweis  

Unter Windows Phone 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.

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.

Einfügen mehrerer Bedingungen für die Hintergrundaufgabe

Zum Hinzufügen mehrerer Bedingungen ruft Ihre App die AddCondition-Methode mehrmals auf. Diese Aufrufe müssen stattfinden, bevor die Aufgabenregistrierung wirksam wird.

Hinweis  Achten Sie darauf, einer Hintergrundaufgabe keine in Konflikt stehenden Bedingungen hinzuzufügen.

Der folgende Ausschnitt zeigt mehrere Bedingungen im Kontext der Erstellung und Registrierung einer Hintergrundaufgabe:



// 
// Set up the background task.
// 

TimeTrigger hourlyTrigger = new TimeTrigger(60, false);

var recurringTaskBuilder = new BackgroundTaskBuilder();

recurringTaskBuilder.Name           = "Hourly background task";
recurringTaskBuilder.TaskEntryPoint = "Tasks.ExampleBackgroundTaskClass";
recurringTaskBuilder.SetTrigger(hourlyTrigger);


// 
// Begin adding conditions.
// 

SystemCondition userCondition     = new SystemCondition(SystemConditionType.UserPresent);
SystemCondition internetCondition = new SystemCondition(SystemConditionType.InternetAvailable);

recurringTaskBuilder.AddCondition(userCondition);
recurringTaskBuilder.AddCondition(internetCondition);


// 
// Done adding conditions, now register the background task.
// 

BackgroundTaskRegistration task = recurringTaskBuilder.Register();

Anmerkungen

Hinweis  Suchen Sie sich richtigen Bedingungen für Ihre Hintergrundaufgabe aus, damit sie nur bei Bedarf ausgeführt wird und nicht dann, wenn es nicht funktioniert. Unter SystemConditionType finden Sie Beschreibungen der verschiedenen Bedingungen für Hintergrundaufgaben.

Verwandte Themen

Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe
So wird's gemacht: Registrieren einer Hintergrundaufgabe
So wird's gemacht: Reagieren auf Systemereignisse mit Hintergrundaufgaben
So wird's gemacht: Verwenden von Wartungsauslösern
So wird's gemacht: Deklarieren von Hintergrundaufgaben im Anwendungsmanifest
How to debug a background task
Richtlinien und Prüflisten für Hintergrundaufgaben

 

 

Anzeigen:
© 2014 Microsoft