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é.
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!