La documentation sur les services de premier plan décrit le comportement actuel des services de premier plan Android. Elle fournit des conseils sur les bonnes pratiques à suivre pour la plupart des applications, qu'elles ciblent ou non la version la plus récente d'Android.
Cette page décrit certaines des modifications importantes les plus récentes apportées aux services de premier plan, ainsi que leurs implications pour les applications qui ne ciblent pas la version la plus récente de la plate-forme Android. Dans de nombreux cas, les bonnes pratiques qui étaient facultatives pour les applications ciblant des niveaux d'API inférieurs deviennent obligatoires pour celles qui ciblent des niveaux d'API supérieurs.
Android 16 (niveau d'API 36)
Les modifications suivantes s'appliquent aux applications qui s'exécutent sur Android 16 ou version ultérieure, quel que soit le niveau d'API qu'elles ciblent :
Les tâches en arrière-plan démarrées à partir d'un service de premier plan doivent désormais respecter leurs quotas d'exécution respectifs. Cela inclut les tâches planifiées directement avec
JobScheduler, ainsi que celles créées par d'autres bibliothèques telles que WorkManager ouDownloadManager.Pour transférer des données en réponse à une action de l'utilisateur, envisagez d'utiliser une tâche de transfert de données déclenchée par l'utilisateur. Ces tâches sont exemptées des quotas de tâches ordinaires.
Android 15 (niveau d'API 35)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 35 ou supérieur :
- De nouvelles restrictions s'appliquent à la durée d'exécution d'un service de premier plan
dataSync. Ces restrictions sont décrites dans la section Comportement du délai d'inactivité des services de premier plan. Des restrictions similaires s'appliquent au type de service de premier planmediaProcessing(nouveau dans Android 15). - Les services de premier plan
BOOT_COMPLETEDne sont plus autorisés à lancer certains services de premier plan. - Les applications qui disposent de l'autorisation
SYSTEM_ALERT_WINDOWne sont autorisées à lancer des services de premier plan en arrière-plan que si elles disposent actuellement d'une fenêtre de superposition visible (ou si elles répondent à l'une des autres exemptions aux restrictions de démarrage en arrière-plan). Auparavant, l'exemption pour ces applications était plus large.
Android 14 (niveau d'API 34)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 34 ou supérieur :
- Vous devez déclarer tous les services de premier plan avec leurs types de service.
- Les applications doivent demander le type d'autorisation approprié pour le type de travail que le service de premier plan effectuera. Chaque type de service de premier plan
possède un type d'autorisation correspondant. Par exemple, si une application lance un
service de premier plan qui utilise la caméra, vous devez demander les autorisations
FOREGROUND_SERVICEetFOREGROUND_SERVICE_CAMERA. Si une application cible le niveau d'API 34 ou supérieur et ne demande pas l'autorisation spécifique appropriée, le système génère uneSecurityException.
Android 12 (niveau d'API 31)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 31 ou supérieur :
- Les applications ne sont pas autorisées à lancer des services de premier plan lorsqu'elles sont en arrière-plan, à quelques exceptions spécifiques près. Pour en savoir plus et obtenir des informations sur les exceptions à cette règle, consultez la section Restrictions concernant le démarrage d'un service de premier plan en arrière-plan.
Android 11 (niveau d'API 30)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 30 ou supérieur :
- Si les services de premier plan d'une application utilisent la caméra ou le micro, l'application doit
déclarer le service avec le
cameraoumicrophonetype de service, respectivement.
Android 10 (niveau d'API 29)
Les exigences suivantes s'appliquent aux applications qui ciblent le niveau d'API 29 ou supérieur :
- Si les services de premier plan d'une application utilisent des informations de localisation, l'application doit
déclarer le service avec le
locationtype de service.
Android 9 (niveau d'API 28)
Android 9 introduit l'autorisation
FOREGROUND_SERVICE. Les applications exécutées sur Android 9 qui utilisent des services de premier plan doivent disposer de cette autorisation.
Si une application qui cible le niveau d'API 28 ou supérieur tente
de créer un service de premier plan sans demander l'autorisation FOREGROUND_SERVICE, le système génère une SecurityException.