Qu'advient-il de TimerTask après l'exécution?
-
07-07-2019 - |
Question
Qu'advient-il de la classe qui étend TimerTask après l'exécution de sa méthode d'exécution? La valeur pour ma tâche est-elle nulle ou après l'exécution?
MyTask myTask = new MyTask();
La solution
Si vous l'avez démarré à partir d'une méthode qui s'est terminée depuis (et ne l'avez référencé nulle part, par exemple dans une variable membre d'un objet toujours en vie), il sera nettoyé par le ramasse-miettes.
Il n'est pas nécessaire de définir la valeur sur null sauf si la tâche conserve des références à d'énormes quantités de mémoire.
Si vous voulez vraiment dé-référencer la tâche, vous devez ajouter un appel à la fin de sa méthode run () pour la supprimer, d'où que vous la référeniez.
Autres conseils
Rien. Vous pouvez consulter le code source du Minuteur
, pour comprendre ce qui se passe réellement quand un TimerTask
est planifié.