0 votes

Les notifications activées sur l'application font que l'application fonctionne en arrière-plan ?

Permettez-moi de commencer par un exemple : l'application de la compagnie aérienne Delta, appelée "FlyDelta", comporte une option permettant d'activer/désactiver l'option "Obtenir des rappels d'enregistrement et des notifications de statut". Ma question est la suivante : si j'active cette option "Obtenir des rappels d'enregistrement et des notifications d'état", l'application fonctionnera-t-elle en arrière-plan à tout moment (même après le redémarrage du téléphone ou la suppression de l'application) ? Je ne sais pas trop comment fonctionnent les notifications. Je sais que Google a une très bonne infrastructure pour pousser les notifications à une application, mais est-ce que l'application doit être en cours d'exécution afin de consommer les données ? Toute aide pour expliquer le comportement de cette application spécifique sera grandement appréciée.

1voto

Andy Brudtkuhl Points 1714

Sondage pour les mises à jour

Cela dépend de la façon dont l'application est écrite. Le plus souvent, l'application utilise la fonction AlarmManager pour s'exécuter à intervalles (disons, toutes les heures) afin de vérifier les mises à jour. Certaines applications peuvent le faire pour se synchroniser avec les données du serveur, que les notifications soient activées ou non dans l'application, et peuvent (ou non) disposer d'un autre paramètre pour désactiver complètement la synchronisation. D'autres applications peuvent n'effectuer cette vérification périodique que si les notifications sont activées, et ne se synchroniser que lorsque vous lancez l'application vous-même.

Quelle que soit la manière dont il contrôle cela, il faut s'attendre à ce que lorsque le AlarmManager lance l'application en arrière-plan, elle s'exécute le temps nécessaire pour obtenir de nouvelles données du serveur, puis s'arrête lorsqu'elle a terminé. Elle ne s'exécutera plus jusqu'à ce que le AlarmManager le redémarre une heure plus tard (ou le temps d'attente programmé). Il n'est (généralement) pas nécessaire que l'application tourne en arrière-plan tout le temps, bien que, bien sûr, une application mal écrite puisse le faire.

Processus d'arrière-plan mis en cache

N'oubliez pas qu'Android conserve les processus d'arrière-plan en mémoire même lorsqu'ils ont cessé de fonctionner, jusqu'à ce qu'un autre processus ait besoin d'utiliser cette mémoire. Si l'application est "arrêtée", elle n'utilise aucune ressource, même si Android la garde en mémoire.

Messagerie Google Cloud

Les applications peuvent utiliser la messagerie Google Cloud (GCM) pour recevoir des mises à jour "poussées" depuis les serveurs (c'est-à-dire depuis "le nuage"). Au lieu d'être lancées à intervalles réguliers pour vérifier les données, elles ne sont lancées que lorsque de nouvelles données sont disponibles. Cela signifie qu'ils consomment moins d'énergie, car ils ne sont pas démarrés inutilement, et moins de données, car ils ne communiquent avec le serveur que lorsqu'ils savent qu'il a de nouvelles données.

Comme ci-dessus, une application peut utiliser le GCM pour maintenir ses données synchronisées avec le serveur, même si les notifications sont désactivées. Il s'agit d'un détail de la mise en œuvre de l'application : cela ne devrait pas affecter son comportement observable, mais seulement la quantité d'énergie et de données qu'elle utilise.

Android lui-même maintient une connexion ouverte aux serveurs de Google. Il n'y a qu'une seule connexion de ce type sur l'ensemble du téléphone, de sorte que l'installation d'une nouvelle application qui utilise la GCM n'utilise pas de ressources supplémentaires. Lorsque le système Android reçoit un message GCM pour une application particulière, il lance cette application en arrière-plan pour lui transmettre le message : il n'est pas nécessaire que l'application soit déjà en cours d'exécution.

L'application s'exécute alors et lit le message. La taille des messages GCM étant très limitée, l'application peut avoir besoin de contacter le serveur pour en savoir plus. Par exemple, le message GCM peut simplement indiquer le nombre de nouveaux e-mails, et le client doit alors vérifier le serveur pour télécharger les nouveaux e-mails. Pour les informations sur les vols, il se peut que le message ne contienne qu'un numéro de porte d'embarquement ou une heure de départ actualisée, de sorte que l'application n'a pas besoin de contacter le serveur pour en savoir plus. Comme précédemment, lorsque l'application a fini de traiter la mise à jour, et qu'elle a créé une notification si nécessaire, elle peut s'arrêter d'elle-même : elle n'a pas besoin de continuer à fonctionner.

0voto

Gantavya Points 11

Je pense que cela peut varier d'une application à l'autre. Pour savoir si l'application en question fonctionne en arrière-plan ou non, il suffit d'utiliser système>apps> services en cours d'exécution.

S'il s'agit d'une notification push, elle ne consomme des données que lorsqu'elle en reçoit. Même s'il fonctionne en arrière-plan, il ne consomme pas de données.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X