Condividi tramite


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

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

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 attualmente registrate dall'applicazione viene gestito nella proprietà Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks. Usa un ciclo while per scorrere l'elenco e cercare il nome dell'attività in background.

L'esempio di attività in background, ad esempio, prima di registrare l'attività in background ServicingComplete usa il codice seguente per verificare se è già registrata:

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

Passaggio 2:

È probabile che un'app che registra attività in background consenta di cercare registrazioni in più situazioni. Per rendere ancor più semplice l'attività, puoi creare una funzione per trovare un'attività in background in base al nome. Se la funzione non trova l'attività, restituisce null e quindi, ad esempio, l'app può determinare se registrare o meno l'attività.

Nell'app puoi usare la funzione seguente:

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

Argomenti correlati

Guida introduttiva: Creare e registrare un'attività in 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

Come eseguire il debug di un'attività in background

Linee guida ed elenchi di controllo per le attività in background