Service vs Thread dans Android
Je suis à la recherche de ce service doit être utilisé dans les application android.
Docs dit
Un Service est un composant d'application qui peuvent effectuer des opérations de longue durée dans l'arrière-plan et ne pas fournir une interface utilisateur.
J'ai lu ce fil Les threads de l'Application vs threads de Service en disant mêmes services sont en cours d'exécution en arrière-plan.
Mais ici, cela peut être fait en utilisant Thread
aussi. Toute la différence entre eux et où vous devriez les utiliser
- Il n'est jamais un choix entre l'utilisation d'un Fil à l'aide d'un Service, comme ils sont distincts des questions qui doivent être répondu de manière indépendante.
- Pouvez-vous veuillez écrire votre réponse de façon appropriée
- Pour ajouter à mon commentaire précédent, tandis que le Thread et des concepts de Service sont normalement orthogonale, la
IntentService
classe représente une conserve combinaison des deux idées. - Double Possible de les threads de l'Application vs Service de threads
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR basé sur la dernière version de la documentation:
Android a inclus dans sa documentation sur lorsque vous devez utiliser le Service de vs Thread. Voici ce qu'il dit:
Autre différence notable entre ces deux approches est que ce Thread va dormir si votre appareil est en veille. Considérant que, le Service peut effectuer l'opération, même si l'appareil passe en mode veille. Prenons par exemple jouer de la musique à l'aide de deux approches.
Fil Approche: la musique ne joue que si votre application est active ou à l'écran d'affichage est sur.
Approche de Service: la musique peut encore jouer, même si vous avez réduit votre application ou de votre écran est éteint.
Remarque: à Partir de l'API de Niveau 23, vous devriez Test de votre application avec Doze.
Android Documentation - Services
Un Service est destiné à l'exécution de votre tâche de manière indépendante de la
Activity
, il vous permet d'exécuter n'importe quelle tâche en arrière-plan. Cette course sur le main thread d'INTERFACE utilisateur ainsi, lorsque vous voulez effectuer un réseau ou d'une charge lourde opération, vous devez utiliser leThread
là.Exemple : Supposons que vous voulez prendre de sauvegarde de vos messages instantanés quotidiens en arrière-plan alors ici vous pourrez utiliser le
Service
.Threads
est pour exécuter votre tâche dans son propre thread au lieu de principal thread d'INTERFACE utilisateur. Vous utilisez quand vous voulez faire un peu lourd le fonctionnement du réseau, comme l'envoi d'octets pour le serveur en permanence, et il est associé avec l'Android de composants. Lorsque votre composant détruire qui l'a commencé, alors vous devriez avoir également l'arrêter.Exemple : Vous utilisez le
Thread
dans l'Activité pour un certain but, il est de bonne pratique pour l'arrêter quand votre activité détruire.run any task in the background
. Pouvez-vous expliquer plus en détail? Je pense que s'exécuter en arrière-plan des moyens pour s'exécuter sur l'autre thread.C'est le principe que j'ai largement suivre
Utiliser un Fil quand
À l'aide d'un fil, dans ces cas, conduit à plus propre, plus lisible & code maintenable. Cela étant dit, il est possible d'utiliser un Service( ou IntentService).
L'utilisation d'un Service lorsque
De référence de https://developer.android.com/guide/components/services.html
Un service est simplement un composant qui peut s'exécuter en arrière-plan, même lorsque l'utilisateur n'est pas d'interagir avec votre application. Ainsi, vous devez créer un service uniquement si c'est ce que vous avez besoin.
Si vous avez besoin d'effectuer des travaux à l'extérieur de votre thread principal, mais uniquement lorsque l'utilisateur interagit avec votre application, alors vous devriez probablement au lieu de créer un nouveau fil de discussion, et non un service.
Par exemple, si vous voulez jouer de la musique, mais seulement pendant que votre activité est en cours d'exécution, vous pouvez créer un thread dans onCreate(), commencer à courir dans onStart(), puis l'arrêter dans onStop().
Rappelez-vous que si vous faites usage d'un service, il s'exécute toujours dans votre application thread principal par défaut, donc vous devez toujours créer un nouveau fil de discussion au sein du service si elle effectue intensifs ou d'opérations de blocage.