J'ai reçu une notification pour une application disant "Le service de transfert Amplify est en cours d'exécution". Qu'est-ce que cela signifie ?
Réponse
Trop de publicités?L'application utilise la bibliothèque AWS Amplify Android et cette notification apparaît lorsque l'application transfère des données depuis/vers ses services AWS dorsaux.
Références croisées de Stack Overflow, Chaque téléchargement reçoit une notification "Le service de transfert Amplify est en cours d'exécution". qui fait référence à un problème GitHub, #1803 - Une notification apparaît sur les appareils des utilisateurs ,
Pendant le transfert, nous avons l'intention d'afficher la notification du service au premier plan afin de garantir que le transfert se poursuive si l'application est mise en arrière-plan ou tuée. Idéalement, cette notification d'avant-plan ne devrait s'afficher que lorsque le(s) transfert(s) est (sont) en cours.
Selon la législation en vigueur demande d'extraction Ceci est dû au fait que les limites d'exécution en arrière-plan imposé depuis l'API 26 (Android 8.0) que les applications en arrière-plan ne peuvent pas démarrer les services d'arrière-plan.
Lorsqu'une application est au premier plan, elle peut créer et exécuter librement des services au premier plan et en arrière-plan. Lorsqu'une application passe en arrière-plan, elle dispose d'une fenêtre de plusieurs minutes pendant laquelle elle est encore autorisée à créer et à utiliser des services. À la fin de cette fenêtre, l'application est considérée comme inactive. À ce moment, le système arrête les services d'arrière-plan de l'application, comme si l'application avait appelé les services de l'arrière-plan.
Service.stopSelf()
des méthodes.
Dans des cas normaux, la notification devrait disparaître une fois le transfert effectué. Cependant, le responsable de la bibliothèque a également observé un bogue possible :
Cependant, j'ai observé que même après la fin d'un transfert, la notification continue de s'afficher, même si l'application elle-même est supprimée. Il semble qu'il s'agisse d'un bogue lié au fait que notre TransferService n'est pas arrêté à la fin de tous les transferts.
Dans ce cas, les développeurs de l'application doivent corriger le problème.