Partilhar via


Otimize a atividade em segundo plano

Os aplicativos universais do Windows devem ter um bom desempenho consistente em todas as famílias de dispositivos. Em dispositivos alimentados por bateria, o consumo de energia é um fator crítico na experiência geral do usuário com seu aplicativo. A autonomia da bateria durante todo o dia é uma funcionalidade desejável para todos os utilizadores, mas requer eficiência de todo o software instalado no dispositivo, incluindo o seu.

O comportamento de tarefas em segundo plano é, sem dúvida, o fator mais importante no custo total de energia de um aplicativo. Uma tarefa em segundo plano é qualquer atividade do programa que tenha sido registrada no sistema para ser executada sem que o aplicativo esteja aberto. Consulte Criar e registrar uma tarefa em segundo plano fora do processo para obter mais informações.

Permissões de atividade em segundo plano

Em computadores e dispositivos móveis que executam o Windows 10, versão 1607 ou posterior, os usuários podem visualizar "Uso da bateria por aplicativo" na seção Bateria das Configurações do Windows. Aqui eles verão uma lista de aplicativos e a porcentagem de vida útil da bateria que cada aplicativo consumiu (fora da quantidade de vida útil da bateria que foi usada desde a última carga). Para aplicativos UWP nessa lista, os usuários podem selecionar o aplicativo para abrir controles relacionados à atividade em segundo plano.

Utilização da bateria por aplicação

Permissões em segundo plano em dispositivos móveis

Em dispositivos móveis, os utilizadores verão uma lista de botões de rádio que especificam a configuração de permissão de tarefa de fundo para essa aplicação. A atividade em segundo plano pode ser definida como "Sempre permitido", "Nunca permitido" ou "Gerenciado pelo Windows", o que significa que a atividade em segundo plano do aplicativo é regulada pelo sistema de acordo com vários fatores.

Botões de opção de permissões de tarefas em segundo plano

Permissões de fundo na área de trabalho

Em dispositivos desktop, a configuração "Gerenciado pelo Windows" é apresentada como um botão de alternância, definido como Ativado por padrão. Se o utilizador mudar para Desativado, ser-lhe-á apresentada uma caixa de verificação com a qual pode definir manualmente as permissões de atividade em segundo plano. Quando a caixa estiver marcada, o aplicativo terá permissão para executar tarefas em segundo plano o tempo todo. Quando a caixa estiver desmarcada, a atividade em segundo plano será desativada.

Ativação das permissões de tarefas em segundo plano

Permissões de tarefa em segundo plano desativadas

Em seu aplicativo, você pode usar o valor de enum BackgroundAccessStatus retornado por uma chamada para o método BackgroundExecutionManager.RequestAccessAsync() para determinar sua configuração de permissão de atividade em segundo plano atual.

Tudo isso para dizer que, se seu aplicativo não implementar o gerenciamento responsável de atividades em segundo plano, o usuário poderá negar permissões em segundo plano para seu aplicativo completamente, o que não é desejável para nenhuma das partes. Se o seu aplicativo tiver permissão negada para ser executado em segundo plano, mas exigir atividade em segundo plano para concluir uma ação para o usuário, você poderá notificá-lo e apontá-lo para as Configurações do Windows. Isso pode ser feito iniciando as configurações do Windows na página Aplicativos em segundo plano ou Detalhes de uso da bateria.

Trabalhar com a funcionalidade Poupança de Bateria

A Economia de Bateria é um recurso no nível do sistema que os usuários podem configurar em Configurações. Ele corta toda a atividade em segundo plano de todos os aplicativos quando o nível da bateria cai abaixo de um limite definido pelo usuário, exceto para a atividade em segundo plano de aplicativos que foram definidos como "Sempre permitido".

Verifique o estado do modo de poupança de bateria a partir da sua aplicação fazendo referência à propriedade PowerManager.EnergySaverStatus . É um valor enum: EnergySaverStatus.Disabled, EnergySaverStatus.Off ou EnergySaverStatus.On. Se o seu aplicativo exigir atividade em segundo plano e não estiver definido como "Sempre permitido", ele deverá manipular EnergySaverStatus.On notificando o usuário de que a(s) tarefa(s) em segundo plano fornecida(s) não será executada(s) até que a Economia de Bateria esteja desativada. Embora o gerenciamento de atividades em segundo plano seja o objetivo principal do recurso Economia de bateria, seu aplicativo pode fazer ajustes adicionais para economizar ainda mais energia quando a Economia de bateria estiver ativada. No caso em que a Economia de Bateria está ativada, seu aplicativo pode reduzir o uso de animações, interromper a sondagem de localização ou atrasar sincronizações e backups.

Otimize ainda mais as tarefas em segundo plano

A seguir estão etapas adicionais que você pode tomar ao registrar suas tarefas em segundo plano para torná-las mais sensíveis à bateria.

Use um gatilho de manutenção

Um objeto MaintenanceTrigger pode ser usado em vez de um objeto SystemTrigger para determinar quando uma tarefa em segundo plano é iniciada. As tarefas que usam gatilhos de manutenção só serão executadas quando o dispositivo estiver conectado à alimentação CA e poderão ser executadas por mais tempo. Consulte Usar um gatilho de manutenção para obter instruções.

Use o tipo de condição do sistema BackgroundWorkCostNotHigh

As condições do sistema devem ser atendidas para que as tarefas em segundo plano sejam executadas (consulte Definir condições para executar uma tarefa em segundo plano para obter mais). O custo do trabalho em segundo plano é uma medida que denota o impacto energético relativo da execução da tarefa em segundo plano. Uma tarefa em execução quando o dispositivo está conectado à corrente alternada seria marcada como baixa (pouco ou nenhum impacto na bateria). Uma tarefa em execução quando o dispositivo está com a bateria ligada com a tela desligada é marcada como alta porque presumivelmente há pouca atividade do programa em execução no dispositivo no momento, então a tarefa em segundo plano teria um custo relativo maior. Uma tarefa em execução quando o dispositivo está com a bateria ligada é marcada como média, porque presumivelmente já há alguma atividade do programa em execução, e a tarefa em segundo plano adicionaria um pouco mais ao custo de energia. A condição do sistema BackgroundWorkCostNotHigh simplesmente atrasa a capacidade da sua tarefa de ser executada até que o ecrã esteja ligado ou o dispositivo esteja conectado à alimentação de CA.

Teste a eficiência da bateria

Certifique-se de testar seu aplicativo em dispositivos reais para quaisquer cenários de alto consumo de energia. É uma boa ideia testar a sua aplicação em muitos dispositivos diferentes, com a Poupança de Bateria ativada e desativada, e em ambientes de intensidade de rede variável.