So wird’s gemacht: Abrufen einer Liste mit ausstehenden 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]
Erfahren Sie, wie Sie eine Liste der Hintergrundaufgaben abrufen können, die zurzeit von Ihrer App registriert sind. Diese Liste beinhaltet Hintergrundaufgaben, die von der App im Rahmen früherer Sitzungen im Vordergrund registriert wurden. Überprüfen Sie die Liste, um sicherzustellen, dass ein und dieselbe Hintergrundaufgabe nicht mehrfach registriert wird. Weitere Infos finden Sie im Thema So wird's gemacht: Registrieren einer Hintergrundaufgabe.
Wissenswertes
Technologien
Voraussetzungen
- In diesem Thema wird vorausgesetzt, dass Sie eine App haben, die Hintergrundaufgaben registriert, und dass die registrierten Hintergrundaufgaben Abbruch und Status behandeln, wie unter So wird's gemacht: Behandeln einer abgebrochenen Hintergrundaufgabe beschrieben. Wie Sie schnell eine Hintergrundaufgabe erstellen, erfahren Sie unter Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe. Ausführliche Informationen zu Bedingungen und Triggern finden Sie unter Unterstützen Ihrer App mit Hintergrundaufgaben.
Anweisungen
Schritt 1:
Die Liste mit den derzeit von der Anwendung registrierten Hintergrundaufgaben ist in der Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks-Eigenschaft gespeichert. Mit einer while-Schleife können Sie diese Liste durchlaufen und nach dem Namen der Hintergrundaufgabe suchen.
Im Hintergrundaufgabenbeispiel wird mit folgendem Code geprüft, ob die Hintergrundaufgabe "servicing-complete" bereits registriert ist, bevor ein Registrierungsversuch gestartet wird:
//
// Check whether the servicing-complete background task is already registered.
//
var iter = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks.first();
var hascur = iter.hasCurrent;
while (hascur) {
var cur = iter.current.value;
if (cur.name === BackgroundTaskSample.servicingCompleteTaskName) {
BackgroundTaskSample.updateBackgroundTaskStatus(BackgroundTaskSample.servicingCompleteTaskName, true);
return;
}
hascur = iter.moveNext();
}
Schritt 2:
Es ist wahrscheinlich, dass eine App, die Hintergrundaufgaben registriert, Registrierungen in mehr als einer Situation nachschlägt. Sie können diese Aufgabe vereinfachen, indem Sie eine Funktion erstellen, die eine Hintergrundaufgabe anhand ihres Namens sucht. Wenn diese Funktion die Aufgabe nicht findet, gibt sie null zurück, sodass die App beispielsweise bestimmen kann, ob die Aufgabe registriert werden soll.
Sie können die folgende Funktion in Ihrer App verwenden:
//
// Check for a registration of the named background task. If one exists,
// return it.
//
function FindTask(taskName) {
var taskRegistered = false;
var background = Windows.ApplicationModel.Background;
var iter = background.BackgroundTaskRegistration.allTasks.first();
var hascur = iter.hasCurrent;
while (hascur) {
var cur = iter.current.value;
if (cur.name === taskName) {
//
// The task is registered, return it.
//
return cur;
}
hascur = iter.moveNext();
}
//
// The task was not found. Return null.
//
return null;
}
Verwandte Themen
Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe
So wird's gemacht: Registrieren einer Hintergrundaufgabe
So wird's gemacht: Behandeln einer abgebrochenen Hintergrundaufgabe
So wird's gemacht: Überwachen des Status und Abschlusses von Hintergrundaufgaben
So wird's gemacht: Deklarieren von Hintergrundaufgaben im Anwendungsmanifest