Les documents indiquent que
Ceci est appelé si le service est en cours d'exécution et que l'utilisateur a supprimé une tâche provenant de l'application du service.
Il semble qu'il ne soit appelé que lorsque l'application est balayée de la liste des tâches récentes. Si vous appuyez sur le bouton Précédent jusqu'à ce que tous les Activities
soient détruits dans la tâche, cela ne sera pas appelé. Y a-t-il d'autres scénarios où cela pourrait être appelé?
Si vous appuyez sur le bouton Retour jusqu'à ce que toutes les activités soient détruites dans la tâche, cela ne sera pas appelé.
Terminer Activities
en appuyant sur le bouton de retour ne signifie pas que l'exécution des services et le processus d'application seront interrompus. Les services continuent de fonctionner (s'ils ne sont pas explicites ou auto-arrêtés) à moins que le système ne tue le processus, donc Service.onTaskRemoved()
n'est pas appelé dans le cas de terminer Activities
comme vous l'avez correctement indiqué.
Y a-t-il d'autres scénarios où cela pourrait être appelé?
Non, mais celui décrit dans la documentation , où "l'utilisateur a supprimé une tâche" signifie faire glisser l'application hors de la liste des tâches *. L'arrêt de Service
à partir des paramètres du téléphone ne déclenche pas Service.onTaskRemoved()
.
* AFAIK, dans de rares cas, Service.onTaskRemoved()
ne peut pas être appelée.