Quelle est la différence entre Service
et IntentService
dans Android?
Quelle est la différence entre AsyncTask
et IntentService
dans Android?
1. Différence entre Service et IntentService
Service : C'est la classe de base pour les services Android, que vous pouvez étendre pour créer n'importe quel service. service exécuté à l'intérieur du thread d'interface utilisateur, il nécessite que vous créiez un thread de travail pour exécuter son travail.
IntentService : c'est une sous-classe de Service
, qui simplifie votre travail. Il fonctionne déjà dans un thread de travail et peut recevoir des demandes asynchrones. Vous n'avez donc pas besoin de le créer manuellement, ni de vous soucier de la synchronisation. Vous pouvez simplement l'étendre et remplacer la méthode:
onHandleIntent(Intent intent)
où vous pouvez gérer toutes les demandes entrantes.
En jetant un œil à la documentation , vous pouvez voir en détail ce que les IntentService
font pour vous:
onStartCommand()
séparément du thread principal de votre application.onHandleIntent()
, de sorte que vous n'avez jamais à vous soucier du multi-threading.stopSelf()
.onBind()
qui retourne null.onStartCommand()
qui envoie l'intention à la file d'attente de travail, puis à votre implémentation onHandleIntent()
.Donc, si vous avez besoin de plus de contrôle, vous pouvez utiliser la classe Service
, mais souvent pour un service simple, la meilleure solution est la IntentService
.
2. Différence entre AsyncTask et Service
Ce sont deux concepts différents.
Service: peut être conçu comme une activité sans interface. Il convient aux opérations de longue durée.
AsyncTask: est une classe particulière qui encapsule un thread de travail (effectuant des opérations en arrière-plan), facilitant l'interaction avec le thread d'interface utilisateur, sans gérer directement les threads ou les gestionnaires.
En bref, un service est une implémentation plus large permettant au développeur de configurer des opérations en arrière-plan, tandis qu'un IntentService est utile pour les opérations de "déclenchement et d'oubli", en prenant soin de la création et du nettoyage des threads en arrière-plan.
De la documentation:
Service Un service est un composant d'application représentant soit le désir d'une application d'effectuer une opération plus longue sans interagir avec l'utilisateur, soit de fournir des fonctionnalités à d'autres applications.
IntentService IntentService est une classe de base pour les services qui gère les demandes asynchrones (exprimées en intentions) à la demande. Les clients envoient des demandes via des appels startService (Intent); le service est démarré selon les besoins, gère chaque intention à son tour à l'aide d'un thread de travail et s'arrête lorsqu'il est à court de travail.
Quelle est la différence entre un IntentService et un Service?