Quelle est la différence entre les services et les services d’intention dans android ?


Le service est une classe de base de l'application de service. La classe de service est exécutée dans la corde principale de l'application, ce qui peut réduire les performances de l'application. Ainsi, Intent Service qui est une sous-classe explicite de Service est né pour faciliter les choses. L'Intent Service est utilisé pour exécuter une certaine tâche en arrière-plan. Une fois effectuée, l'instance du service Intent se termine automatiquement.

Service VS Service Intent dans Android


Dans la documentation officielle d'Android, Service et Service Intent sont décrits comme suit :

Service

C'est la classe de base pour tous les services. Lorsque vous ajoutez cette classe, il est crucial que vous créiez un nouveau thread dans lequel effectuer tout le travail du service, car le utilise votre utilisation du thread principal, par défaut, ce qui pourrait ralentir les performances de toute activité que votre application exécute.

Service Intent

C'est une position de Service qui utilise un thread paysan pour traiter toutes les demandes de démarrage, une à la fois. C'est la meilleure option si vous n'avez pas besoin que votre service traite plusieurs demandes simultanément. Tout ce que vous avez à faire est d'utensiler sur Handle Intent qui reçoit l'intention pour chaque demande de démarrage afin que vous puissiez faire la pratique.

Voici quelques différences clés entre Service et Intent Service dans Android.

Quand utiliser ?

Le Service peut être utilisé dans les tâches sans interface utilisateur, mais ne doit pas être trop long. Si vous avez l'urgence de réaliser des tâches longues, vous devez utiliser des threads avec le Service.

Le Service Intent utilisé dans les tâches longues fréquemment sans contact avec le Main Thread. If communication is required, can use Main Thread handler or broadcast intents. Another case of use is when callbacks are needed (Intent triggered tasks).

How to trigger?

The Service is triggered calling to method start Service.

The Intent Service is triggered using an Intent, it spawns a new worker thread and the method on Handle Intent() is called on this thread.

Triggered From

The utility and Intent Service may be generate from any thread, activity or other utilization fundamental.

Runs On

The utility runs in practice but it runs on the main thread of the utilization.

The Intent Service runs on a separate worker thread.

Limitations / Drawbacks

Slides

Slides available on Speaker Deck.

References

  1. Service. Android API.
  2. IntentService. Android API.
  3. Services. API Guide.
  4. StackOverflow.
  5. Android Services and Background Tasks.