Language: HTML | XAML

So wird’s gemacht: Abrufen einer Liste mit ausstehenden Hintergrundaufgaben (XAML)

Applies to Windows and Windows Phone

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

Anweisungen

Schritt 1:

Die Liste der zurzeit von der Anwendung registrierten Hintergrundaufgaben wird in der BackgroundTaskRegistration.AllTasks-Eigenschaft vorgehalten.

Im folgenden Code wird gezeigt, wie Sie die AllTasks-Eigenschaft durchlaufen.


foreach (var cur in BackgroundTaskRegistration.AllTasks)
{
    // TODO: Perform operations relevant to registered background tasks, such as registering event handlers.
}

Schritt 2:

Das alleinige Abrufen der Liste von Hintergrundaufgaben, die zurzeit von der App registriert sind, ist nicht sehr nützlich – Ihre App muss mit diesen Informationen etwas anfangen. Nachfolgenden finden Sie einen Beispielausschnitt; weitere Informationen finden Sie außerdem unter So geht's: Überwachen des Fortschritts und Abschlusses von Hintergrundaufgaben.

Im Hintergrundaufgabenbeispiel wird mit folgendem Code geprüft, ob SampleBackgroundTask (ohne die Bedingung) bereits registriert ist, bevor ein Registrierungsversuch gestartet wird:


/// <summary>
/// Registers a background task for the servicing-complete system event.
/// This event occurs when the application is updated.
/// </summary>
public static void RegisterServicingCompleteTask()
{
    //
    // Check whether the servicing-complete background task is already registered.
    //
    foreach (var cur in BackgroundTaskRegistration.AllTasks)
    {
        if (cur.Value.Name == ServicingCompleteTaskName)
        {
            //
            // The task is already registered.
            //
            UpdateBackgroundTaskStatus(ServicingCompleteTaskName, true);
            return;
        }
    }

    //
    // The servicing-complete background task is not already registered.
    //
    RegisterBackgroundTask(ServicingCompleteTaskEntryPoint,
                            ServicingCompleteTaskName,
                            new SystemTrigger(SystemTriggerType.ServicingComplete, false),
                            null);
}

Schritt 3:

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.
// 
public static BackgroundTaskRegistration FindTask(string taskName)
{
    foreach (var cur in BackgroundTaskRegistration.AllTasks)
    {
        if (cur.Value.Name == taskName)
        {
            // 
            // The task is registered, return it.
            // 
                    
            return (BackgroundTaskRegistration)cur.Value;
        }
    }
    

    // 
    // 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
How to debug a background task
Richtlinien und Prüflisten für Hintergrundaufgaben

 

 

Anzeigen:
© 2015 Microsoft