Linguaggio: HTML | XAML

Come ottenere l'elenco delle attività in background in sospeso (XAML)

Applies to Windows and Windows Phone

Come ottenere un elenco delle attività correntemente registrate dall'app. Questo elenco include le attività in background registrate dall'app durante le precedenti sessioni in primo piano, in modo che tu possa controllare prima di registrare di nuovo più volte un'attività in background. Per altre informazioni, vedi Come registrare un'attività in background.

Cosa sapere

Tecnologie

Prerequisiti

Istruzioni

Passaggio 1:

L'elenco delle attività in background correntemente registrate dall'applicazione è mantenuto nella proprietà BackgroundTaskRegistration.AllTasks.

Il codice seguente mostra come eseguire l'iterazione della proprietà AllTasks:


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

Passaggio 2:

Ottenere l'elenco delle attività in background correntemente registrate dall'applicazione non è particolarmente utile di per sé, ma solo se l'app userà le informazioni per uno scopo. Per altre informazioni, vedi Come monitorare l'avanzamento e il completamento delle attività in background e il frammento di codice di esempio seguente.

L'esempio di attività in background, ad esempio, prima di registrare l'attività SampleBackgroundTask (senza la condizione) usa il codice seguente per verificare se è già registrata:


/// <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);
}

Passaggio 3:

Probabilmente, un'app che registra le attività in background ricercherà le registrazioni in più di un caso. Per semplificare questa attività puoi creare una funzione per trovare le attività in background in base al nome. Se la funzione non trova alcuna attività restituirà il valore null, in modo che l'app possa stabilire, ad esempio, se registrare o meno l'attività.

Nella tua app puoi usare la funzione seguente:


// 
// 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;
}

Argomenti correlati

Guida introduttiva: Creazione e registrazione di un'attività di background
Come registrare un'attività in background
Come gestire un'attività in background annullata
Come monitorare l'avanzamento e il completamento delle attività in background
Come dichiarare le attività in background nel manifesto dell'applicazione
How to debug a background task
Linee guida ed elenco di controllo per le attività in background

 

 

Mostra:
© 2014 Microsoft