Reputation: 7243
I have a timer task in a loop. I want to pass into the time task which number it is in a loop.
Is that possible?
My code:
...
int i = 0;
while (i < array.size){
Timer timer = new Timer();
timer.schedule(new RegrowCornAnimate(), 0, 1000);
i++
}
...
class RegrowCornAnimate extends TimerTask {
public void run() {
//Do stuff
}
}
How can I change it so I can use i
in the TimerTask class? -as in each TimerTask will know which i
it was created under/in/from.
Upvotes: 9
Views: 23656
Reputation: 969
Please see an example at http://www.roseindia.net/java/task-scheduling.shtml. This example prints a number with each run.
Upvotes: -2
Reputation: 63832
Create a constructor in RegrowCornAnimate
taking the parameters you'd like to use, then store them as members inside your class.
When RegrowCornAnimate.run
is called read the values.
Upvotes: 4
Reputation: 110054
Give the RegrowCornAnimate
class a constructor that takes an int
and store that in a field. Pass i
to the constructor when you create it.
Upvotes: 5
Reputation: 45586
class RegrowCornAnimate extends TimerTask {
private final int serial;
RegrowCornAnimate ( int serial )
{
this.serial = serial;
}
public void run() {
//Do stuff
}
}
...
int i = 0;
while (i < array.size){
Timer timer = new Timer();
timer.schedule(new RegrowCornAnimate( i ), 0, 1000);
i++;
}
...
Upvotes: 24