創建的計時器。如果我通過以下方式創建定時器列表:確定在列表
timers = new ArrayList<Timer>();
for(int i = 0; i<10;i++)
{
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//Task of timer here
}
}, 0, 1000);
timers.add(timer);
}
如何識別運行中()方法是什麼列表項是什麼?
如果我做如下不起作用,因爲我將設置最後的定時的所有ID:
timers = new ArrayList<Timer>();
for(int i = 0; i<10;i++)
{
final int timerId = i;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//Task of timer here
int id = timerId;
}
}, 0, 1000);
timers.add(timer);
}
如果您將timerId設置爲final,則可以使其工作... final int timerId = i;請注意,因爲你使它最終不能修改值 – StackFlowed 2014-09-30 15:09:34