CountDownTimer.cancel()在Android中不起作用

CountDownTimer.cancel()不能在下面的代码中工作:

 myTimer = new CountDownTimer(10000, 1000) { public void onFinish() { } @Override public void onTick(long millisUntilFinished) { if(null != myObject){ myTimer.cancel(); } } }.start(); 

在上面的代码中,我启动了一个CountDownTimer ,它检查对象是否为null并相应地取消定时器。 该对象在任何时间点由某个听众设置。 请参考和build议。 我在这里做正确的事吗?

解决schemeGautier Hayoun

只是做了一个替代CountDownTimer,你可以取消onTick: Github链接 – Gautier Hayoun 12年10月12日在1:04

Solutions Collecting From Web of "CountDownTimer.cancel()在Android中不起作用"

解决schemeGautier Hayoun:

只是做了一个替代CountDownTimer,你可以取消onTick: Github链接 – Gautier Hayoun 12年10月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); } }); }