En la documentación de los servicios en primer plano, se describe el comportamiento actual de los servicios en primer plano de Android. La documentación brinda orientación sobre las prácticas recomendadas para la mayoría de las apps, independientemente de si se orientan a la versión más reciente de Android.
En esta página, se describen algunos de los cambios importantes más recientes en los servicios en primer plano y las implicaciones para las apps que no se orientan a la versión más reciente de la plataforma de Android. En muchos casos, las prácticas recomendadas que eran opcionales para las apps orientadas a niveles de API más bajos se vuelven obligatorias para las apps orientadas a niveles de API más altos.
Android 9 (nivel de API 28)
En Android 9, se introduce el permiso FOREGROUND_SERVICE
. Las apps que se ejecutan en Android 9 y usan servicios en primer plano deben tener ese permiso.
Si una app orientada al nivel de API 28 o versiones posteriores intenta crear un servicio en primer plano sin solicitar el permiso FOREGROUND_SERVICE
, el sistema arroja una SecurityException
.
Android 10 (nivel de API 29)
Los siguientes requisitos se aplican a las apps que se orientan al nivel de API 29 o versiones posteriores:
- Si los servicios en primer plano de una app usan información de ubicación, la app debe declarar el servicio con el tipo de servicio
location
.
Android 11 (nivel de API 30)
Los siguientes requisitos se aplican a las apps orientadas al nivel de API 30 o versiones posteriores:
- Si los servicios en primer plano de una app usan la cámara o el micrófono, la app debe declarar el servicio con el tipo de servicio
camera
omicrophone
, respectivamente.
Android 12 (nivel de API 31)
Los siguientes requisitos se aplican a las apps que se orientan al nivel de API 31 o superior:
- Las apps no pueden iniciar servicios en primer plano mientras se ejecutan en segundo plano, con algunas excepciones específicas. Para obtener más información y sobre las excepciones a esta regla, consulta Restringir el inicio de un servicio en primer plano desde el segundo plano.
Android 14 (nivel de API 34)
Los siguientes requisitos se aplican a las apps que se orientan al nivel de API 34 o versiones posteriores:
- Debes declarar todos los servicios en primer plano con sus tipos de servicio.
- Las apps deben solicitar el tipo de permiso adecuado para el tipo de trabajo que realizará el servicio en primer plano. Cada tipo de servicio en primer plano tiene un tipo de permiso correspondiente. Por ejemplo, si una app inicia un servicio en primer plano que usa la cámara, debes solicitar los permisos
FOREGROUND_SERVICE
yFOREGROUND_SERVICE_CAMERA
. Si una app se orienta al nivel de API 34 o uno superior y no solicita el permiso específico adecuado, el sistema arroja unaSecurityException
.
Android 15 (nivel de API 35)
Los siguientes requisitos se aplican a las apps orientadas al nivel de API 35 o superior:
- Hay nuevas restricciones sobre el tiempo que puede ejecutarse un servicio en primer plano de
dataSync
. Estas restricciones se describen en Comportamiento del tiempo de espera del servicio en primer plano. Se aplican restricciones similares al tipo de servicio en primer planomediaProcessing
(nuevo en Android 15). - Los servicios en primer plano de
BOOT_COMPLETED
ya no pueden iniciar ciertos servicios en primer plano. - Las apps que tienen el permiso
SYSTEM_ALERT_WINDOW
solo pueden iniciar servicios en primer plano desde el segundo plano si actualmente tienen una ventana superpuesta visible (o si cumplen con una de las otras exenciones de las restricciones de inicio en segundo plano). Anteriormente, la exención para esas apps era más amplia.