Maison > Problème commun > Quel est le cycle de vie du service ?

Quel est le cycle de vie du service ?

清浅
Libérer: 2020-09-16 16:13:08
original
32479 Les gens l'ont consulté

Le cycle de vie du service est divisé en quatre parties, à savoir le cycle de vie du service démarré, le cycle de vie du service lié, le cycle de vie du service démarré et lié et l'effacement du service lorsque le le service est arrêté.

Quel est le cycle de vie du service ?

Cycle de vie du service

Semblable à l'activité, le service a également sa propre fonction de cycle de vie à différents moments, Le système appellera la fonction de cycle de vie du service correspondante, mais comparé au cycle de déclaration d'activité, le cycle de déclaration de service est plus simple.

(1) Cycle de vie du service démarré

Si un service est démarré par une activité appelant la méthode Context.startService, alors qu'il existe ou non une activité lié à l'aide de bindService Define ou unbindService pour dissocier le service, et le service s'exécutera en arrière-plan. Si un service est démarré plusieurs fois par la méthode startService, alors la méthode onCreate ne sera appelée qu'une seule fois, onStart sera appelé plusieurs fois (correspondant au nombre d'appels à startService) et le système ne créera qu'une seule instance du service. . Le service s'exécutera toujours en arrière-plan, que l'activité du programme correspondant soit en cours d'exécution ou non, jusqu'à ce que stopService ou sa propre méthode stopSelf soit appelée. Bien entendu, si les ressources système sont insuffisantes, le système Android peut également mettre fin au service.

(2) Cycle de vie du service lié

Si un service est lié et démarré par une activité appelant la méthode Context.bindService, quel que soit le nombre de fois bindService est appelée À chaque fois, la méthode onCreate ne sera appelée qu'une seule fois et la méthode onStart ne sera jamais appelée. Une fois la connexion établie, le service continuera à s'exécuter, à moins que Context.unbindService ne soit appelé pour se déconnecter ou que le contexte qui appelait précédemment bindService n'existe plus (par exemple lorsque l'activité est terminée), le système arrêtera automatiquement le service et le service. le onDestroy correspondant sera appelé.

(3) Cycle de vie d'un service démarré et lié

Si un service est démarré et lié à nouveau, le service s'exécutera toujours en arrière-plan. Et quelle que soit la manière dont il est appelé, onCreate ne sera toujours appelé qu'une seule fois, correspondant au nombre de fois que startService est appelé, onStart de Service sera appelé autant de fois. L’appel de unbindService n’arrêtera pas le service, mais doit appeler stopService ou stopSelf du service pour arrêter le service.

(4) Effacer le service lorsque le service est arrêté

Lorsqu'un service est terminé (1. Appelez stopService; 2. Appelez stopSelf; 3. Plus de liaison Lorsqu'une certaine connexion (n'a pas été démarrée)), la méthode onDestroy sera appelée ici, vous devez effectuer un travail de nettoyage, comme arrêter le thread créé et exécuté dans le service.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal