Como responder a eventos do sistema com tarefas em segundo plano (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 criar uma tarefa em segundo plano que responde a gatilhos de evento do sistema. Os aplicativos da Windows Store preservam a experiência do usuário mesmo quando o aplicativo não está em primeiro plano, associando um código personalizado leve aos eventos SystemTrigger. Esse código personalizado é executado nas tarefas em segundo plano.
O que você precisa saber
Tecnologias
Pré-requisitos
- Este tópico pressupõe que você tenha uma classe de tarefa em segundo plano criada para seu aplicativo e que essa tarefa precise ser executada em resposta a um evento acionado pelo sistema, como a disponibilização da Internet ou o logon do usuário. Seu aplicativo não precisa estar na tela de bloqueio para executar tarefas em segundo plano registradas com as classes SystemTrigger e MaintenanceTrigger. Este tópico enfoca a classe SystemTrigger. 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: Crie um objeto SystemTrigger
No código do seu aplicativo, crie um novo objeto SystemTrigger. O primeiro parâmetro, triggerType, especifica o tipo de gatilho de evento do sistema que ativará esta tarefa em segundo plano. Para obter uma lista dos tipos de evento, veja SystemTriggerType.
O segundo parâmetro, OneShot, especifica se a tarefa em segundo plano será executada uma única vez na próxima vez em que o evento do sistema ocorrer e dispara tarefas em segundo plano ou sempre que o evento do sistema ocorrer, até que a tarefa seja desregistrada.
O código a seguir determina que a tarefa em segundo plano seja executada sempre que a Internet ficar disponível:
var internetTrigger = new Windows.ApplicationModel.Background.SystemTrigger(InternetAvailable, false);
Etapa 2: (Opcional) Adicionar uma condição
Se necessário, adicione uma condição de tarefa em segundo plano para controlar quando sua 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 tarefa em segundo plano seja executada somente 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 à tarefa em segundo plano:
var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemCondition.UserPresent);
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 = “Internet-based background task”;
var task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, 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
Para ver o registro da tarefa em segundo plano em ação, baixe o exemplo de tarefa em segundo plano.
As tarefas em segundo plano podem ser executadas em resposta aos eventos SystemTrigger e MaintenanceTrigger sem que o aplicativo esteja na tela de bloqueio, mas ainda será necessário declarar as tarefas em segundo plano no manifesto do aplicativo. No telefone, você também deve chamar o RequestAccessAsync antes de registrar qualquer tipo de tarefa em segundo plano.
Os aplicativos com recurso de tela de bloqueio podem registrar tarefas em segundo plano que respondem aos eventos TimeTrigger, PushNotificationTrigger e NetworkOperatorNotificationTrigger, permitindo que forneçam comunicação em tempo real com o usuário, mesmo quando o aplicativo não está em primeiro plano. Para saber mais, veja Oferecendo suporte ao seu aplicativo com tarefas em segundo plano.
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 definir condições para executar uma tarefa em segundo plano
Como usar gatilhos de manutenção
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