Gérer l'arrêt initié par l'utilisateur des applications exécutant des services de premier plan

À partir d'Android 13 (niveau d'API 33), les utilisateurs peuvent effectuer un workflow depuis le volet de notifications pour arrêter une application qui exécute des services de premier plan en cours, quelle que soit la version du SDK cible de cette application. Cette fonctionnalité, appelée le Gestionnaire des tâches, affiche une liste des applications qui exécutent actuellement un service de premier plan.

En bas du panneau de notifications se trouve un bouton qui indique le nombre d'applications actuellement en cours d'exécution en arrière-plan. Lorsque vous appuyez sur ce bouton, une boîte de dialogue s'affiche et liste les noms de différentes applications. Le bouton "Arrêter" se trouve à droite de chaque application.
Figure 1. Workflow du Gestionnaire des tâches sur les appareils qui exécutent Android 13 ou version ultérieure.

Cette liste est intitulée Applications actives. À côté de chaque application se trouve un bouton Arrêter. La figure 1 illustre le workflow du Gestionnaire des tâches sur un appareil exécutant Android 13.

Lorsque l'utilisateur appuie sur le bouton Arrêter à côté de votre application dans le Gestionnaire des tâches, les actions suivantes se produisent :

  • Le système supprime votre application de la mémoire. Par conséquent, l'ensemble de votre application s'arrête, et pas seulement le service de premier plan en cours d'exécution.
  • Le système supprime la pile "Retour" de l'activité de votre application.
  • Toute lecture de contenu multimédia s'arrête.
  • La notification associée au service de premier plan est supprimée.
  • Votre application reste dans l'historique.
  • Les jobs planifiés s'exécutent à l'heure prévue.
  • Les alarmes se déclenchent à l'heure ou dans la plage horaire prévue.

Pour vérifier que votre application se comporte comme prévu pendant et après qu'un utilisateur l'a arrêtée, exécutez la commande ADB suivante dans une fenêtre de terminal :

adb shell cmd activity stop-app PACKAGE_NAME