J'ai une méthode onCreate qui exécute le code ci-dessous. En un mot, le code récupère les données du serveur et les affiche à l'écran pour un programme de messagerie. Il ne le fait qu'une seule fois, mais je voudrais qu'il lance l'AsyncTask toutes les 3 secondes (pour essayer de simuler un chat). Je suis sûr que ce n'est pas la manière d'avoir un système de chat, mais j'ai juste besoin de quelque chose qui fonctionne pour l'instant (comme preuve de concept) et je vais me concentrer sur la manière correcte de l'implémenter plus tard. J'ai essayé de mettre une simple instruction while autour de l'asynctask, mais elle force juste à se fermer.Comment exécuter un AsyncTask encore et encore?
Répondre
Vous ne pouvez pas réutiliser une instance AsyncTask
. Vous devrez créer de nouvelles instances à chaque passage de votre boucle.
Devrais-je essayer de créer une nouvelle instance, ou devrais-je emprunter une autre route (comme les chargeurs mentionnés par @Steve)? – EGHDK
@EGHDK: Cela ne me semble pas être un scénario 'Loader'. Vous pouvez utiliser 'Timer' et' TimerTask', plus 'post()' sur votre 'TextView' pour obtenir ces mises à jour sur le thread d'application principal au lieu du thread de la tâche. – CommonsWare
Donc, si quelqu'un trouve cela dans le futur. CommonsWare a donné la réponse à la question mais, York m'a donné la solution. Merci à tous pour votre temps. Je vous en suis reconnaissant. – EGHDK
Sans informations supplémentaires, il est difficile de vous donner une réponse précise. Cependant regarder dans tout abstraire en utilisant un Loader, en utilisant un Service
, etc
En ce qui concerne Loaders
:
- Ils sont disponibles à chaque activité et Fragment.
- Ils fournissent un chargement asynchrone de données.
- Ils surveillent la source de leurs données et fournissent de nouveaux résultats lorsque le contenu change.
- Ils se reconnectent automatiquement au curseur du dernier chargeur lorsqu'ils sont recréés après un changement de configuration. Ainsi, ils n'ont pas besoin de re-interroger leurs données.
asyncTask exécute simplement la fonction 'getInbox()', qui obtient des informations du web en utilisant un script php. Un chargeur serait-il la bonne chose à utiliser pour cela? – EGHDK
- 1. travail oozie continue à exécuter encore et encore
- 2. Créer classe encore et encore?
- 3. Force Close encore et encore
- 4. addEventListener ajoutant encore et encore
- 5. Webview charge encore et encore dans listview
- 6. Obtenir la même mémoire encore et encore
- 7. Invalider encore et encore Windows Forms
- 8. Appeler le même ViewController encore et encore
- 9. appliquez simplement la gravité encore et encore
- 10. Encore et encore ... Pointer à fonction membre
- 11. Appel à la fonctionnalité encore et encore
- 12. (jQuery) Comment encore Hover, montrant encore ... ce
- 13. Comment configurer sigalarm pour répéter encore et encore sous Linux?
- 14. Comment empêcher mon application de se lancer encore et encore
- 15. Comment revenir d'une fonction encore et encore en C++?
- 16. Comment répéter l'animation de texte continuellement encore et encore
- 17. php: comment exécuter script à partir d'autres scripts encore et
- 18. La compression et la décompression JPEG encore et encore
- 19. nivo slider - chargement gif continue et encore et encore
- 20. Si d'autres données arrêtent d'insérer encore et encore
- 21. jquery, comment définir un modèle de dom et de l'utiliser encore et encore
- 22. Message d'erreur déconnecté canal encore et encore - Flash Builder 4
- 23. Renommer des fichiers de la même manière encore et encore
- 24. Ajouter/Cacher une div après avoir cliqué encore et encore
- 25. Page reload demander de soumettre des données encore et encore
- 26. PHP Modifier le retour d'une boucle encore et encore
- 27. fonction de rappel Jquery exécute encore et encore
- 28. kmalloc retourner la même adresse encore et encore [Linux 2.4]
- 29. Entity Framework enregistrer encore et encore la même entité liée
- 30. Utiliser la même vue encore et encore (Android)
Quelle est la question? –
Nous n'utilisons généralement pas AsyncTask pour une tâche périodique, consultez ma réponse [ici] (http://stackoverflow.com/questions/8098806/where-do-i-create-and-use-scheduledthreadpoolexecutor-timertask-or- gestionnaire/8102488 # 8102488) pour voir si cela aide. – yorkw
York, votre réponse à cette question était parfaite. Cela a fonctionné pour moi et fait tout ce que j'avais besoin de faire. – EGHDK