Mudanças nos serviços em primeiro plano

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, sejam eles direcionados ou não à 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 direcionados à versão mais recente da plataforma Android. Em muitos casos, as práticas recomendadas que eram opcionais para apps direcionados a níveis mais baixos da API se tornam obrigatórias para apps direcionados a níveis mais altos da API.

Android 16 (nível 36 da API)

As mudanças a seguir se aplicam a apps executados no Android 16 ou mais recente, independentemente do nível da API a que são direcionados:

  • Os jobs em segundo plano iniciados por um serviço em primeiro plano agora precisam obedecer às respectivas cotas de execução. Isso inclui jobs programados diretamente com JobScheduler, bem como jobs criados por outras bibliotecas, como WorkManager ou DownloadManager.

    Para transferir dados em resposta a uma ação do usuário, considere usar um job de transferência de dados iniciado pelo usuário. Esses jobs são isentos das cotas de jobs comuns.

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:

Android 14 (nível 34 da API)

Os requisitos a seguir se aplicam a apps direcionados ao 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 e FOREGROUND_SERVICE_CAMERA. Se um app for direcionado ao nível 34 da API ou mais recente e não solicitar a permissão específica adequada, o sistema vai gerar uma SecurityException.

Android 12 (nível 31 da API)

Os requisitos a seguir se aplicam a apps direcionados ao nível 31 da API ou mais recente:

Android 11 (nível da API 30)

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 ou microphone, respectivamente.

Android 10 (nível 29 da API)

Os requisitos a seguir se aplicam a apps direcionados ao nível 29 da API ou mais recente:

  • Se os serviços em primeiro plano de um app usarem informações de localização, o app precisará declarar o serviço com o tipo de serviço location.

Android 9 (nível 28 da API)

O Android 9 introduz a FOREGROUND_SERVICE permissão. Os apps executados no Android 9 que usam serviços em primeiro plano precisam ter essa permissão.

Se um app direcionado ao nível 28 da API ou mais recente tentar criar um serviço em primeiro plano sem solicitar a FOREGROUND_SERVICE permissão, o sistema vai gerar uma SecurityException.