Como usar o gatilho de manutenção (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]
Saiba como usar a classe MaintenanceTrigger para executar um código leve em segundo plano enquanto o dispositivo está conectado.
O que você precisa saber
Tecnologias
Pré-requisitos
- Esse exemplo considera que você dispõe de código leve que pode ser executado em segundo plano para melhorar seu aplicativo enquanto o dispositivo está conectado. Este tópico enfoca a classe MaintenanceTrigger, que é semelhante a SystemTrigger, pois o aplicativo não precisa estar na tela de bloqueio para registrar uma tarefa em segundo plano de MaintenanceTrigger. Para saber mais sobre como criar uma classe de tarefa em segundo plano, veja Guia de início rápido: criar e registrar uma tarefa em segundo plano.
Instruções
Etapa 1: Criar um objeto de gatilho de manutenção
Crie um novo objeto MaintenanceTrigger. O segundo parâmetro, OneShot, especifica se a tarefa de manutenção será executada apenas uma vez ou se continuará a ser executada continuamente. Se OneShot for definido como verdadeiro, o primeiro parâmetro (FreshnessTime) especificará o número de minutos aguardados até que a tarefa em segundo plano seja agendada. Se OneShot for definido como falso, FreshnessTime especificará a frequência com que a tarefa em segundo plano será executada.
Observação Se FreshnessTime for definido para menos de 15 minutos, uma exceção ocorrerá quando você tentar registrar a tarefa em segundo plano.
Esse código de exemplo cria um gatilho que é executada uma vez a cada hora:
var waitIntervalMinutes = 60;
var taskTrigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(waitIntervalMinutes, false);
Etapa 2: (Opcional) Adicionar uma condição
Se necessário, adicione uma condição de tarefa em segundo plano para controlar quando a tarefa será executada. Condições impedem que sua tarefa em segundo plano seja executada até que a condição em questão seja atendida. Para saber mais, veja Como definir condições para executar uma tarefa em segundo plano.
Neste exemplo, a condição é definida como UserPresent para que a manutenção seja executada quando a Internet estiver (ou ficar) disponível. Para obter uma lista das possíveis condições de tarefa em segundo plano, veja SystemConditionType.
O código a seguir adiciona uma condição ao criador de tarefa de manutenção:
var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserAway);
Etapa 3: Registrar a tarefa em segundo plano
Registre a tarefa em segundo plano chamando sua função de registro da tarefa em segundo plano. Para saber mais sobre o registro de tarefas em segundo plano, veja Como registrar uma tarefa em segundo plano.
O código a seguir registra a tarefa em segundo plano:
var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Maintenance background task example”;
var task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition);
Observação
Nos aplicativos da Loja do Windows Phone, você deve chamar RequestAccessAsync antes de tentar registrar qualquer tarefa em segundo plano. No Windows, essa chamada é necessária somente para configurar tarefas em segundo plano que podem executar somente se seu aplicativo estiver na tela de bloqueio, mas no telefone você deve chamar esse método uma vez para poder registrar qualquer tarefa em segundo plano.
Para garantir que seu aplicativo do Windows Phone continua a ser executado corretamente depois que você liberar uma atualização, chame RemoveAccess e, em seguida, chame RequestAccessAsync quando seu aplicativo for iniciado após a atualização. Para saber mais, consulte Diretrizes para tarefas em segundo plano (HTML).
Observação
A partir do Windows 8.1, os parâmetros de registro de tarefas de segundo plano são validados no momento do registro. Um erro será retornado se algum parâmetro de registro for inválido. Seu aplicativo deve ser capaz de manipular cenários em que o registro de tarefas de segundo plano apresenta falha - por exemplo, use uma instrução condicional para verificar se há erros de registro e tente novamente o registro com falha usando valores de parâmetros diferentes.
Comentários
Os eventos de gatilho de manutenção não serão disparados a não ser que o dispositivo esteja conectado.
Observação Se o dispositivo estiver desconectado, todas as tarefas em segundo plano em execução que foram iniciadas pelo MaintenanceTrigger serão canceladas (cancelReason = Abort). Se a tarefa em segundo plano não for cancelada em até 5 segundos após receber o evento de tarefa em segundo plano cancelada, ela será encerrada. Para saber mais, veja Como lidar com uma tarefa em segundo plano cancelada.
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 responder a eventos do sistema com tarefas em segundo plano
Como definir condições para executar uma tarefa 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