CountDownTimer.cancel()
无法使用以下代码:
myTimer = new CountDownTimer(10000, 1000) {
public void onFinish() {
}
@Override
public void onTick(long millisUntilFinished) {
if(null != myObject){
myTimer.cancel();
}
}
}.start();
在上面的代码中,我启动了CountDownTimer
,检查对象是否不是null
并相应地取消Timer。该对象由某个侦听器在任何时间点设置。
请参考并提出建议。我在这里做对了吗?
Gautier Hayoun的解决方案:
刚刚替换掉了 您可以取消的CountDownTimer 来自onTick:Github link - Gautier Hayoun 2010年12月12日在1:04
答案 0 :(得分:9)
解决方案作者:Gautier Hayoun:
刚刚替换了CountDownTimer,您可以在onTick中取消:Github link - Gautier Hayoun 2010年12月12日1:04
答案 1 :(得分:5)
而不是CountDownTimer使用TimerTask
final static long INTERVAL=1000;
final static long TIMEOUT=10000;
TimerTask task=new TimerTask(){
@Override
public void run() {
elapsed+=INTERVAL;
if(elapsed>=TIMEOUT){
this.cancel();
displayText("finished");
return;
}
//if(some other conditions)
// this.cancel();
displayText("seconds elapsed: " + elapsed / 1000);
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, INTERVAL, INTERVAL);
private void displayText(final String text){
this.runOnUiThread(new Runnable(){
@Override
public void run() {
mTextField.setText(text);
}
});
}