|
|
PRATIQUE JAVA |
|
|
|
Lancer une action à intervalles réguliers |
|
"Comment puis-je mettre en place un évènement qui se répète toutes les 10 secondes ?"
(27/06/2005) |
|
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Comment souvent, la réponse se trouve dans la vaste API de Java,
en l'occurrence au sein des classes Timer
et TimerTask, la première permettant
le lancement d'instance de la seconde. En
clair, on définir la tâche à accomplir à l'aide de la classe
TimerTask, et on l'exécute,
au besoin la répète, avec Timer.
La classe
TimerTask implémente une méthode
run(), où l'on placera le code
à lancer périodiquement. Ensuite, il faut créer un flux (thread)
à partir de la classe Timer,
et indique le temps entre deux exécutions du code. Finalement,
la méthode cancel() de Timer
permet de mettre un terme à la répétition.
public class RepetAction {
Timer t;
public RepetAction() {
t = new Timer();
t.schedule(new MonAction(), 0, 1*1000);
}
class MonAction extends TimerTask {
int nbrRepetitions = 3;
public void run() {
if (nbrRepetitions > 0)
{
System.out.println("Ca
bosse dur!");
nbrRepetitions--;
} else {
System.out.println("Terminé!");
t.cancel();
}
}
}
} |
|
|