恢复Android倒计时器

时间:2017-01-03 20:33:30

标签: android timer

我一直在尝试使用CountDownTimer为倒数计时器编码,并使其能够从停止时间恢复。到目前为止,我能够参考另一个问题并提出这个问题。

public void onClick(View v) {
    getResume();

    if ( getResume()==0) {
        countDownTimer.start();
        timerHasStarted = true;
        startB.setText("STOP");
        setResume(1);
        Toast.makeText(this, getResume()+"",Toast.LENGTH_LONG).show();
    } else if (getResume()==1) {
        countDownTimer.cancel();
        timerHasStarted = false;
        startB.setText("RESTART");
        setResume(2);
        Toast.makeText(this, getResume()+"",Toast.LENGTH_LONG).show();
    } else if (getResume()==2){
        CountDownTimer rcdt = new MyCountDownTimer(s1, interval);
        rcdt.start();
        setResume(1);
    }

}

所以getResume()只是为了得到全局的int resume,我认为我可以用来作为一个开关,因为timerHasStarted并没有帮助我。但是,由于我在恢复为2时创建了新的计时器,因此我无法多次恢复计时器。这段代码只让我恢复一次,因为它是不同的计时器,并且在rcdt.start()发生后我甚至不能.cancel()。很明显,我错过了一个重要的概念,但我无法通过搜索找到答案。 https://gist.github.com/bverc/1492672与这种情况不同,我只是制作了milisuntilfinished = s1,并用它来启动新的计时器。是这样的吗?或者有什么方法可以使上面的代码工作?  请帮忙!

1 个答案:

答案 0 :(得分:0)

尝试替换此行(在if == 2中)



        CountDownTimer rcdt = new MyCountDownTimer(s1, interval);






countDownTimer= new MyCountDownTimer(s1, interval);




让我知道它的作品和你是否理解了问题是什么,如果是问题,但你不明白错误我会发布解释。