Où dois-je créer et utiliser ScheduledThreadPoolExecutor, TimerTask, ou un Gestionnaire?
J'ai besoin de faire mon lecteur de Flux RSS vérifier le flux toutes les 10 minutes pour les nouveaux postes, et ensuite d'analyser si il y a des nouvelles. J'ai également besoin de mettre à jour l'INTERFACE utilisateur toutes les minutes environ.
J'ai lu et entendu des choses différentes à partir de diverses sources. Ma compréhension est que je peux utiliser ScheduledThreadPoolExecutor
faire deux programmée fils, et l'un d'eux a besoin d'un Handler
pour la mise à jour de l'INTERFACE utilisateur. Je ne suis pas sûr à propos de ce que l'utilisation la plus efficace de ces classes ou TimerTask
.
Je suis aussi très incertain sur l'endroit où faire des sous-classes de ces. Un ami a suggéré d'étendre le TimerTask
intérieur de la classe dans mon FeedParser
classe pour la rendre plus simple. Cependant, pour la mettre en œuvre dans ce sens, je dois utiliser le run()
méthode pour TimerTask
sans écraser, ce qui signifie que je ne peux pas tout simplement utiliser les paramètres dont j'ai besoin pour les fonctions qui ont besoin pour fonctionner.
En bref, quel est le meilleur moyen de planifier les tâches, et où pourrais-je mettre en œuvre ces?
Vous devez vous connecter pour publier un commentaire.
Je préfère utiliser ScheduledThreadPoolExecutor. En général, si je comprends vos exigences correctement, tous ces éléments peuvent être mis en œuvre dans votre activité, TimerTask et Gestionnaire ne sont pas nécessaires, voir l'exemple de code ci-dessous:
N'oubliez pas de terminer/fermer votre exécutable tâche correctement dans l'Activité.onDestroy(), espérons que cette aide.
ScheduledExecutorService
plutôt queScheduledThreadPoolExecutor
, qui est une sous-classe de l'ancien? Ou est-il juste que je n'ai pas besoin de l'ajout de choses dansScheduledThreadPoolExecutor
?onPause()
pour éviter les files d'attente de nombreuses mises à jour de l'INTERFACE utilisateur (dans mon casalertDialog
).