Ajout de points à la réponse acceptée:
Voir l'utilisation d'IntentService dans l'API Android. par exemple:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Pour créer un composant IntentService pour votre application, définissez une classe qui étend IntentService et, à l'intérieur, définissez une méthode qui remplace onHandleIntent ().
Voir aussi le code source de IntentService, ses méthodes de constructeur et de cycle de vie comme onStartCommand ...
@Override
public int More ...onStartCommand(Intent intent, int flags, int startId) {
onStart(intent, startId);
return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}
Entretenir ensemble une AsyncTask est l'une des meilleures approches pour de nombreux cas d'utilisation où la charge utile n'est pas énorme. ou créez simplement une classe étendant IntentSerivce. À partir d'Android version 4.0, toutes les opérations réseau doivent être en arrière-plan, sinon la compilation / génération de l'application échoue. thread séparé de l'interface utilisateur. La classe AsyncTask fournit l'un des moyens les plus simples de lancer une nouvelle tâche à partir du thread d'interface utilisateur. Pour plus de discussion sur ce sujet, voir le billet de blog
du guide des développeurs Android :
IntentService est une classe de base pour les services qui gèrent 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.
Modèle de conception utilisé dans IntentService
: Ce modèle de "processeur de file d'attente de travail" est couramment utilisé pour décharger les tâches du thread principal d'une application. La classe IntentService existe pour simplifier ce modèle et prendre soin de la mécanique. Pour l'utiliser, étendez IntentService et implémentez onHandleIntent (Intent). IntentService recevra les intentions, lancera un thread de travail et arrêtera le service comme il convient.
Toutes les demandes sont traitées sur un seul thread de travail - elles peuvent prendre aussi longtemps que nécessaire (et ne bloqueront pas la boucle principale de l'application), mais une seule demande sera traitée à la fois.
La classe IntentService fournit une structure simple pour exécuter une opération sur un seul thread d'arrière-plan. Cela lui permet de gérer des opérations de longue durée sans affecter la réactivité de votre interface utilisateur. En outre, un IntentService n'est pas affecté par la plupart des événements de cycle de vie de l'interface utilisateur, il continue donc de s'exécuter dans des circonstances qui arrêteraient une AsyncTask.
Un IntentService a quelques limitations:
Il ne peut pas interagir directement avec votre interface utilisateur. Pour mettre ses résultats dans l'interface utilisateur, vous devez les envoyer à une activité. Les demandes de travail s'exécutent séquentiellement. Si une opération s'exécute dans un IntentService et que vous lui envoyez une autre demande, la demande attend la fin de la première opération. Une opération exécutée sur un IntentService ne peut pas être interrompue. Cependant, dans la plupart des cas
IntentService est le moyen préféré d'effectuer de simples opérations en arrière-plan
**
Bibliothèque Volley
Il y a la bibliothèque appelée volley-bibliothèque pour développer des applications de mise en réseau Android
Le code source est disponible pour le public dans GitHub.
La documentation officielle Android pour les meilleures pratiques pour les travaux en arrière-plan : permet de mieux comprendre le service intentionnel, le thread, le gestionnaire, le service. et également effectuer des opérations réseau
IntentService is used for short tasks (etc) and a service is for long ones
où avez-vous lu cela?