A documentação do serviço em primeiro plano descreve o comportamento atual dos serviços em primeiro plano do Android. A documentação oferece orientações sobre as práticas recomendadas para a maioria dos apps, independentemente de eles serem direcionados à versão mais recente do Android.
Esta página descreve algumas das mudanças importantes mais recentes nos serviços em primeiro plano e as implicações para apps que não são destinados à versão mais recente da plataforma Android. Em muitos casos, as práticas recomendadas que eram opcionais para apps direcionados a níveis de API mais baixos se tornam obrigatórias para apps direcionados a níveis de API mais altos.
Android 9 (nível 28 da API)
O Android 9 apresenta a
permissão FOREGROUND_SERVICE
. Os apps executados no
Android 9 que usam serviços em primeiro plano precisam ter essa permissão.
Se um app destinado ao nível 28 da API ou mais recente tentar
criar um serviço em primeiro plano sem solicitar a permissão
FOREGROUND_SERVICE
, o sistema gerará uma SecurityException
.
Android 10 (nível 29 da API)
Os requisitos a seguir se aplicam a apps que segmentam o nível 29 da API ou mais recente:
- Se os serviços em primeiro plano de um app usarem informações de local, ele precisa
declarar o serviço com o tipo de serviço
location
.
Android 11 (nível 30 da API)
Os requisitos a seguir se aplicam a apps direcionados ao nível 30 da API ou mais recente:
- Se os serviços em primeiro plano de um app usarem a câmera ou o microfone, o app precisará
declarar o serviço com o tipo de serviço
camera
oumicrophone
, respectivamente.
Android 12 (nível 31 da API)
Os requisitos a seguir se aplicam a apps que segmentam o nível 31 da API ou mais recente:
- Os apps não podem iniciar serviços em primeiro plano enquanto estão em segundo plano, exceto em algumas exceções específicas. Para mais informações e informações sobre as exceções a essa regra, consulte Restrições para iniciar um serviço em primeiro plano do segundo plano.
Android 14 (nível 34 da API)
Os requisitos a seguir se aplicam a apps que segmentam o nível 34 da API ou mais recente:
- É necessário declarar todos os serviços em primeiro plano com os tipos de serviço.
- Os apps precisam solicitar o tipo de permissão adequado para o tipo de trabalho que
o serviço em primeiro plano vai realizar. Cada tipo de serviço em primeiro plano
tem um tipo de permissão correspondente. Por exemplo, se um app iniciar um
serviço em primeiro plano que usa a câmera, será necessário solicitar as permissões
FOREGROUND_SERVICE
eFOREGROUND_SERVICE_CAMERA
. Se um app for destinado ao nível 34 da API ou mais recente e não solicitar a permissão específica adequada, o sistema vai gerar umaSecurityException
.
Android 15 (nível 35 da API)
Os requisitos a seguir se aplicam a apps direcionados ao nível 35 da API ou mais recente:
- Há novas restrições sobre o tempo que um serviço em primeiro plano
dataSync
pode ser executado. Essas restrições são descritas em Comportamento de tempo limite de serviços em primeiro plano. Restrições semelhantes se aplicam ao tipo de serviço em primeiro planomediaProcessing
(novo no Android 15). - Os serviços em primeiro plano
BOOT_COMPLETED
não podem mais iniciar determinados serviços em primeiro plano. - Os apps que têm a permissão
SYSTEM_ALERT_WINDOW
só podem iniciar serviços em primeiro plano em segundo plano se tiverem uma janela de sobreposição visível (ou se atenderem a uma das outras isenções de restrições de início em segundo plano). Anteriormente, a isenção para esses apps era mais ampla.