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
- Este tópico pressupõe que você tenha um aplicativo que registra tarefas em segundo plano e que as tarefas em segundo plano registradas lidam com cancelamento e progresso conforme descrito em Como lidar com uma tarefa em segundo plano cancelada. Para começar a criar rapidamente uma tarefa em segundo plano, veja Guia de início rápido: criar e registrar uma tarefa em segundo plano. Para obter informações mais detalhadas sobre condições e gatilhos, veja Adicionar suporte para tarefas em segundo plano ao seu aplicativo.
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