J'entends toujours parler des services et des récepteurs de diffusion . Quelle est la différence entre eux et comment affectent-ils le fonctionnement de mon téléphone Android de mon point de vue?
J'entends toujours parler des services et des récepteurs de diffusion . Quelle est la différence entre eux et comment affectent-ils le fonctionnement de mon téléphone Android de mon point de vue?
Réponses:
Les applications Android ont trois types de composants. En général, les utilisateurs n'ont pas besoin de les connaître: ils sont un moyen pour les auteurs d'applications de programmer des comportements particuliers dans leurs applications. Mais si vous observez de près le comportement de vos applications, comme avec un gestionnaire de tâches, ou si vous automatisez des choses avec une application comme Tasker, il est utile de comprendre comment elles s'intègrent au sein du système.
Une activité est le type de composant le plus familier: c'est une fenêtre que vous pouvez voir: en plein écran ou au format boîte de dialogue. Une activité ne s'exécute que lorsqu'elle est affichée à l'écran. Une fois que vous quittez l'activité, Android gardera cette application en mémoire prête à être redémarrée, mais l'activité ne s'exécutera pas, ce qui signifie qu'elle n'utilisera pas de batterie ou de réseau. Une application démarre une activité en utilisant une intention . L'intention peut spécifier explicitement quelle activité démarrer, ou elle peut spécifier une action à effectuer (telle que l'ouverture d'un fichier particulier). Si plusieurs activités peuvent "gérer" l'intention, la boîte de dialogue vous invite à en choisir une.
Un service est un autre composant d'application. Une fois qu'un autre composant (peut-être une activité ou un autre service) a démarré un service, il s'exécute en arrière-plan jusqu'à ce qu'il s'arrête. Cela signifie qu'un service peut garder votre téléphone éveillé (en utilisant un verrou de réveil ), décharger la batterie ou utiliser beaucoup de données réseau, sans que rien ne s'affiche à l'écran.
Les applications peuvent utiliser des services pour effectuer des processus de longue durée en arrière-plan, tels que le téléchargement de fichiers à partir d'un serveur, la vérification des e-mails ou la vérification de votre emplacement. Bien que les services ne s'affichent pas ou n'interagissent pas directement avec vous, ils apparaissent toujours dans la liste "Exécution des applications". Dans l' application Paramètres , choisissez Applications ou Gestionnaire d'applications , puis Exécution . Vous pouvez arrêter un service de cette façon, mais ce n'est généralement pas nécessaire. Parce que les services ne sont pas directement visibles, Android les considère comme moins importants que les activités, ils seront donc les premiers à être supprimés lorsque votre téléphone aura besoin de plus de mémoire.
Les récepteurs de diffusion sont le troisième type de composant. Comme les services, ils n'existent qu'en arrière-plan et n'interagissent pas directement avec vous. Mais contrairement aux services, ils ne peuvent pas continuer à fonctionner ou effectuer de longues tâches: ils existent pour répondre aux événements. Et contrairement aux activités et aux services, plusieurs récepteurs de diffusion peuvent être démarrés en une seule fois.
Un composant diffuse une intention, éventuellement vers une application, mais le plus souvent sans spécifier une application particulière. Dans ce cas, l'intention représente généralement un événement qui s'est produit, comme la batterie faible. Le système recherche tous les récepteurs de diffusion qui ont enregistré un intérêt (à l'aide d'un filtre d'intention ) et les exécute tour à tour. Chaque récepteur de diffusion peut réagir immédiatement, par exemple en créant une notification, ou il peut démarrer un service ou une activité pour prendre d'autres mesures. Dès que le récepteur de diffusion a géré l'événement, celui-ci est arrêté et ne s'exécute plus jusqu'à ce qu'un autre événement similaire soit diffusé.
Un exemple des trois composants fonctionnant ensemble est lorsque vous téléchargez une application à partir de Google Play. Tout d'abord, l'activité Google Play fournit l'interface visuelle pour vous permettre de choisir le contenu à télécharger. La liste des applications peut être une activité; cliquer sur le bouton "installer" démarre une autre activité pour afficher la boîte de dialogue de confirmation ou de paiement. Lorsque vous confirmez, l'activité de dialogue démarre un service. Le service continuera de télécharger le contenu même lorsque l'activité est terminée et n'est plus en cours d'exécution.
Mais peut-être que le téléphone perd la connexion Internet pendant le téléchargement de la nouvelle application. Si cela se produit, le service de téléchargement de Google Play enregistrera un récepteur de diffusion, avec un filtre d'intention pour dire qu'il est intéressé par les changements de connectivité réseau, puis le service s'arrêtera. Lorsque le téléphone se connecte à Internet, le système diffuse un événement. Android démarrera le récepteur de diffusion enregistré par le service Google Play, ainsi que tout autre récepteur de diffusion en attente de cet événement. Dans ce cas, le récepteur de diffusion redémarrera le service de téléchargement. Le service créera des notifications au fur et à mesure du téléchargement et, une fois terminé, il enverra sa propre diffusion pour informer les autres applications que le nouveau package a été installé, puis s'arrêtera automatiquement. À son tour, cela démarrera les récepteurs de diffusion à partir d'autres applications,
En résumé:-