À l'aide d'un AsyncTask à l'intérieur d'une Classe de Service?
J'ai télécharger des données à un serveur. Je suis à l'aide d'un service qui s'exécute sur le même processus que mon application. Dois-je utiliser un thread Séparé pour le processus de téléchargement ou dois-je utiliser un AsyncTask pour télécharger les données vers le serveur ?
Plus précisément puis-je utiliser AsyncTask à l'intérieur d'une classe de service ? Et dois-je l'utiliser ? Ce service doit toujours être en cours d'exécution dans la mémoire afin d'envoyer des données au serveur toutes les 5 secondes.
Pourquoi ne pas essayer vous-même et de savoir? Si cela ne fonctionne pas, alors venez DONC, pour obtenir de l'aide.
Utiliser un IntentService - onHandleIntent est déjà fait appel à un thread de travail.
Je ne peux pas utiliser un IntentService comme IntentService se termine comme il a terminé sa tâche.
Alors .. ne vous laissez pas terminer la tâche ..
Utiliser un IntentService - onHandleIntent est déjà fait appel à un thread de travail.
Je ne peux pas utiliser un IntentService comme IntentService se termine comme il a terminé sa tâche.
Alors .. ne vous laissez pas terminer la tâche ..
OriginalL'auteur Rakesh | 2014-02-26
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez, le code ci-dessous va exécuter toutes les 5 secondes. Utilisez votre code de connexion pour l'envoi de la partie.
onHandleIntent()
dansService
. Il devrait êtreIntentService
.OriginalL'auteur user666
Pas de problème à utiliser AsyncTask dans un service.
NOTE /CORRIGÉ : je me suis trompé quand j'ai dit que le service s'exécute en arrière-plan, il n'applis pour IntentService. Comme indiqué dans les commentaires et dans les la documentation, un service de ne pas créer son propre thread :
Cela signifie que vous doit utiliser un AsyncTask (ou un autre thread en tout cas) pour effectuer la mise en ligne de la tâche.
Yup le téléchargement des données directement dans la classe de Service de geler le thread d'INTERFACE utilisateur. J'ai besoin d'un thread séparé pour ce faire, c'est pourquoi je pensais à faire le téléchargement en AysncTask.
Pas si le service a été commencé dans son propre processus. Toutefois, la valeur par défaut mode d'exécution d'un service est trop courir sur le même thread que l'interface utilisateur, dans ce cas, vous avez raison.
Ouais, vous avez raison, je vais corriger ma réponse.
OriginalL'auteur Pierre Rust
Utilisation AsyncTask dans un service d'android
Essayer ce peut être le travail.
Merci.
OriginalL'auteur Shriyanshu Jain