Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece uma visão geral do uso de tarefas em segundo plano e descreve como criar uma nova tarefa em segundo plano em um aplicativo WinUI 3. Para obter informações sobre como migrar seus aplicativos UWP com tarefas em segundo plano para WinUI, consulte o Windows App SDK Estratégia de Migração de Tarefas em Segundo Plano.
BackgroundTaskBuilder no SDK de Aplicativos do Windows
As tarefas em segundo plano são componentes de aplicativo executados em segundo plano sem uma interface do usuário. Eles podem executar ações como baixar arquivos, sincronizar dados, enviar notificações ou atualizar blocos. Eles podem ser disparados por vários eventos, como tempo, alterações no sistema, ações do usuário ou notificações por push. Essas tarefas podem ser executadas quando o gatilho correspondente ocorre mesmo quando o aplicativo não está em estado de execução.
O BackgroundTaskBuilder do Windows Runtime (WinRT) foi projetado para aplicativos UWP, e muitos dos gatilhos de tarefa em segundo plano não têm suporte para componentes COM de confiança plena. Eles são compatíveis apenas quando registrados com componentes do WinRT que são lançados por um processo backgroundtaskhost
. Devido a isso, os aplicativos da área de trabalho do Windows App SDK não podem registrar diretamente os componentes COM de confiança total para serem iniciados por gatilhos de tarefas em segundo plano. Eles exigem uma solução alternativa para incluir os componentes do WinRT no projeto. O BackgroundTaskBuilder na API do Windows App SDK evita essa solução alternativa para que o WinUI 3 e outros aplicativos da área de trabalho que usam o Windows App SDK possam registrar diretamente os componentes COM de total confiança em tarefas em segundo plano.
Registrar uma tarefa em segundo plano
O exemplo a seguir registra uma tarefa em segundo plano para um componente COM com confiança total usando o Windows App SDK BackgroundTaskBuilder. Consulte o guia de estratégia de migração de tarefas em segundo plano para obter mais informações.
O código C++ para criar e registrar uma tarefa em segundo plano é o seguinte:
//Using the Windows App SDK API for BackgroundTaskBuilder
winrt::Microsoft::Windows::ApplicationModel::Background::BackgroundTaskBuilder builder;
SystemTrigger trigger = SystemTrigger(SystemTriggerType::TimeZoneChange, false);
auto backgroundTrigger = trigger.as<IBackgroundTrigger>();
builder.SetTrigger(backgroundTrigger);
builder.AddCondition(SystemCondition(SystemConditionType::InternetAvailable));
builder.SetTaskEntryPointClsid(classGuid);
builder.Register();
Para criar e registrar a tarefa em segundo plano em C#, o código é o seguinte:
//Using the Windows App SDK API for BackgroundTaskBuilder
var builder = new Microsoft.Windows.ApplicationModel.Background.BackgroundTaskBuilder();
var trigger = new SystemTrigger(SystemTriggerType.TimeZoneChange, false);
var backgroundTrigger = trigger as IBackgroundTrigger;
builder.SetTrigger(backgroundTrigger);
builder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable));
builder.SetTaskEntryPointClsid(classGuid);
builder.Register();
A entrada de manifesto do pacote correspondente para a tarefa em segundo plano é a seguinte:
<Extension Category="windows.backgroundTasks" EntryPoint="Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.Task">
<BackgroundTasks>
<Task Type="general"/>
</BackgroundTasks>
</Extension>
Uma amostra completa de registro de tarefa em segundo plano do WinUI 3 pode ser encontrada no GitHub.
Conteúdo relacionado
- Diretrizes de para tarefas em segundo plano em aplicativos UWP
- estratégia de migração de tarefas em segundo plano
Windows developer