Vin*_*tti 8 java android timer
CountDownTimer.cancel() 不适用于以下代码:
myTimer = new CountDownTimer(10000, 1000) {
public void onFinish() {
}
@Override
public void onTick(long millisUntilFinished) {
if(null != myObject){
myTimer.cancel();
}
}
}.start();
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我已经开始CountDownTimer检查对象是否没有,null并相应地取消Timer.该对象由某个侦听器在任何时间点设置.请参考并提出建议.我在这做对了吗?
解决方案作者:Gautier Hayoun:
刚刚为CountDownTimer做了替代,你可以在onTick中取消:Github链接 - Gautier Hayoun 2010年12月12日在1:04
而不是使用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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7679 次 |
| 最近记录: |