开发者

CountDownTimer.cancel() is not working in Android

CountDownTimer.cancel() is not working in the below code:

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

In the above code I have started a CountDownTimer which check if the object is not null and cancels the Timer accordingly. The object is set by some listener at any point of 开发者_Go百科time. Please refer and suggest. Am I doing the right thing here?

Solution By Gautier Hayoun :

Just made a drop-in replacement for CountDownTimer that you can cancel from within onTick : Github link– Gautier Hayoun Dec 12 '10 at 1:04


Solution By Gautier Hayoun :

Just made a drop-in replacement for CountDownTimer that you can cancel from within onTick : Github link– Gautier Hayoun Dec 12 '10 at 1:04


Instead of CountDownTimer use 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);
        }
    });
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜