Idioma: HTML | XAML

Como responder a eventos do sistema com tarefas em segundo plano (XAML)

Applies to Windows and Windows Phone

Saiba como criar uma tarefa em segundo plano que responde a eventos SystemTrigger.

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:

    
    SystemTrigger internetTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
    
    

Etapa 2:

  • 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 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:

    
    SystemCondition exampleCondition = new SystemCondition(SystemConditionType.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:

    
    string entryPoint = "Tasks.ExampleBackgroundTaskClass";
    string taskName   = "Internet-based background task";
    
    BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
    
    
    • Applies to Windows Phone

    No 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.

    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
How to debug a background task
Diretrizes e listas de verificação para tarefas em segundo plano

 

 

Mostrar:
© 2014 Microsoft