Um ano de testes no Android: Notificações versus economia de bateria para manter apps em segundo plano

Como Manter Aplicativos Android Funcionando em Segundo Plano

É comum enfrentar o problema de aplicativos que não entregam notificações em tempo hábil ou que simplesmente param de funcionar quando não estão em uso ativo. Mensagens enviadas há minutos podem demorar horas para serem visualizadas, e aplicativos que deveriam rodar em segundo plano, como os de acessórios inteligentes ou utilitários, simplesmente se desligam.

Este artigo explora algumas das descobertas obtidas ao tentar forçar a execução contínua de aplicativos em segundo plano, especialmente em relação a acessórios como relógios inteligentes.

A Natureza do Android e o Gerenciamento de Bateria

O sistema operacional Android, em suas versões mais recentes, é projetado para ser eficiente em termos de consumo de bateria. Isso significa que, após um certo período de inatividade (aproximadamente três dias, de acordo com observações), o sistema tende a desativar aplicativos que não são abertos com frequência, como aqueles utilitários de acessórios.

Aplicativos de uso diário como WhatsApp ou Facebook são mantidos ativos porque são abertos constantemente, garantindo que permaneçam em primeiro plano. No entanto, aplicativos de relógio, timers ou lâmpadas, que são usados esporadicamente, são alvos fáceis para o sistema de otimização.

Primeira Tentativa: Otimização de Bateria

A primeira medida que muitos sugerem é remover o aplicativo da otimização de bateria. O procedimento geralmente envolve:

  • Acessar as Configurações do celular.
  • Ir em Aplicativos e selecionar o app desejado.
  • Na opção Bateria, configurá-lo como não otimizado, sem economia de bateria ou sem restrições.

Mesmo após realizar essa configuração, observou-se que a conectividade com o acessório (como o relógio) ainda pode ser perdida ou as notificações podem falhar.

Segunda Tentativa: Permissões Especiais de Alarme

Em versões mais recentes do Android, uma permissão nova foi introduzida para garantir a execução precisa de tarefas agendadas: a permissão de Alarmes ou Definir Alarmes.

Essa configuração pode ser encontrada em:

  • Configurações > Acesso Especial (ou em permissões/permissões de aplicativos).
  • Buscar pela opção Definir Alarmes, Alarmes e Timers ou similar.

Conceder essa permissão permite que o aplicativo funcione em segundo plano de forma mais precisa, executando tarefas agendadas no momento exato. Contudo, mesmo com esta permissão ativada, a confiabilidade da execução em segundo plano pode não ser totalmente garantida.

Terceira Tentativa: Manter Aplicativo Fixo na Multitarefa

Outra abordagem é impedir que o aplicativo seja fechado acidentalmente pela tela de multitarefa (o menu que mostra todos os aplicativos abertos). Em muitos dispositivos Android, é possível:

  • Tocar e segurar no ícone do aplicativo ou na janela do app na tela de multitarefa.
  • Selecionar a opção Manter Aberto, Fixar no Início Rápido ou Não Fechar.

Embora isso impeça que o sistema limpe o aplicativo da memória ao fechar as tarefas, isso não garante que o processo em segundo plano continue ativo e funcionando. Foi notado que, mesmo fixado, o aplicativo pode congelar suas operações após um tempo.

O Fator Crítico: Bloqueio de Notificações Persistentes

A descoberta mais surpreendente, baseada em experimentos com aplicativos que falhavam consistentemente, foi a dependência de certas notificações para manter a funcionalidade em segundo plano.

Aplicativos mal otimizados ou antigos (alguns programas de clima, por exemplo) utilizam uma notificação “persistente” (aquela que aparece constantemente na barra de status) como um componente essencial para forçar o sistema a mantê-los ativos.

Para aplicativos que dependem disso, desativar totalmente as notificações é um erro:

  • Bloquear notificações: Isso faz com que o aplicativo “morra” em segundo plano, pois a permissão de notificação é um componente vital para sua execução contínua.

É possível **minimizar** essas notificações chatas (configurando-as para não emitir som ou aparecer em destaque), mas não se deve desativá-las completamente se a intenção é que o aplicativo funcione 24 horas por dia em segundo plano.

Isso se aplica a aplicativos como bloqueadores de anúncios ou ferramentas de clima que precisam atualizar informações constantemente. Aplicativos bem projetados, como WhatsApp ou Gmail (na maior parte do tempo), não precisam dessa notificação constante para funcionar bem.

Considerações sobre o Sistema Android

O Android é um sistema fragmentado. A forma como ele gerencia a economia de energia varia entre fabricantes e versões. É importante lembrar que o sistema é projetado para suspender processos em segundo plano para poupar bateria, verificando novos eventos apenas em intervalos.

Exceções são aplicativos de comunicação cruciais (como WhatsApp), que mantêm a busca ativa. Aplicativos como Google Photos, por sua vez, esperam condições específicas (como estar conectado ao carregador e ao Wi-Fi por um longo período, como duas horas) para realizar backups automáticos.

Portanto, a solução para aplicativos de acessórios que param de funcionar reside, muitas vezes, em manter a notificação persistente minimizada, mas não desativada, para não quebrar a lógica de persistência imposta pelo desenvolvedor ao sistema.

Perguntas Frequentes

  • O que causa o fechamento de aplicativos em segundo plano no Android?
    Geralmente é o gerenciamento de bateria do sistema operacional, que desativa processos de aplicativos não utilizados frequentemente para economizar energia.
  • Como impedir que o sistema feche um aplicativo?
    As primeiras tentativas envolvem remover o app da otimização de bateria e, em alguns casos, garantir que ele tenha a permissão especial de definir alarmes.
  • É recomendado desativar todas as notificações de um app para mantê-lo ativo?
    Não. Alguns aplicativos dependem da notificação persistente para continuar funcionando em segundo plano; desativá-la pode fazer com que o app pare de funcionar completamente.
  • Qual o efeito de fixar um aplicativo na tela de multitarefa?
    Isso impede que ele seja limpo da memória ao fechar outras tarefas, mas não impede que o sistema operacional suspenda suas operações em segundo plano.
  • Por que alguns aplicativos antigos de utilidade funcionam de forma diferente dos modernos?
    Aplicativos mais antigos podem usar técnicas de programação arcaicas que dependem de notificações visíveis para manterem a execução em segundo plano, um recurso que sistemas mais novos tentam restringir.