Compartilhar via


Como obter uma lista das tarefas em segundo plano pendentes (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Aprenda como obter uma lista de tarefas em segundo plano registradas pelo seu aplicativo. Esta lista inclui tarefas em segundo plano registradas pelo aplicativo durante sessões anteriores em primeiro plano, para que você possa verificar antes de potencialmente registrar várias vezes uma tarefa em segundo plano. Para saber mais, veja Como registrar uma tarefa em segundo plano.

O que você precisa saber

Tecnologias

Pré-requisitos

Instruções

Etapa 1:

A lista das tarefas em segundo plano atualmente registradas pelo aplicativo é mantida na propriedade Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks. Use um loop while para percorrer a lista e procurar o nome da tarefa em segundo plano.

Por exemplo, a amostra de tarefa em segundo plano usa o seguinte código para verificar se a tarefa em segundo plano servicing-complete já está registrada antes de tentar registrá-la:

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

Etapa 2:

É provável que um aplicativo que registra tarefas em segundo plano procure registros em mais de uma situação. Você pode tornar essa tarefa ainda mais fácil criando uma função para encontrar uma tarefa em segundo plano com base no nome dela. Se essa função não encontrar a tarefa, ela retornar nulo para que, por exemplo, seu aplicativo possa determinar se essa tarefa deve ser registrada.

A função a seguir pode ser usada no seu aplicativo:

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

Tópicos relacionados

Guia de início rápido: criar e registrar uma tarefa em segundo plano

Como registrar uma tarefa em segundo plano

Como manipular uma tarefa em segundo plano cancelada

Como monitorar o progresso e a conclusão de tarefas em segundo plano

Como declarar tarefas em segundo plano no manifesto do aplicativo

Como depurar uma tarefa em segundo plano

Diretrizes e listas de verificação para tarefas em segundo plano