我有以下方法用于运行连续线程:
public void createAndStartCountDownThread(){
final Handler handler = new Handler();
countDownThread=new Thread(new Runnable() {
public void run() {
int timeToBlink = 1000;
try{Thread.sleep(timeToBlink);}catch (Exception e) {}
handler.post(new Runnable() {
public void run() {
if(isCountDownThreadRunning==0)
return;
if(secondsUntilFinished!=0)
secondsUntilFinished--;
if(secondsUntilFinished==0)
onFinish();
else{
createAndStartCountDownThread();
}
}
});
}
});
countDownThread.start();
}
基本上所有这些都是倒计时。但是,问题在于,如果我过于频繁地调用此方法,似乎会创建该线程的多个副本,因为计时器开始以两倍或三倍的速度移动。我不明白为什么会发生这种情况 - 似乎我正在重新分配现有的 countDownThread,所以不应该生成一个新的。我究竟做错了什么?