連続スレッドを実行するために使用している次の方法があります。
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();
}
基本的にこれが行うことは、タイマーのカウントダウンだけです。ただし、問題は、このメソッドを頻繁に呼び出すと、タイマーが 2 倍または 3 倍速く動き始めるため、このスレッドの複数のコピーが作成されているように見えることです。これが発生する理由がわかりません。既存の countDownThread を再割り当てしているように見えるため、新しいものを生成しないでください。私は何を間違っていますか?