倒数计时器在Android应用程序中的不同时间启动

时间:2013-02-25 01:46:14

标签: java android timer countdowntimer

我有一个应用程序,其按钮点击开始有2个计时器。

当它们启动时,计时器倒计时显示在文本视图中,以便用户看到秒倒数(10,9,8,7等)

一个计数器是45秒计时器,另一个是30秒计时器。 我注意到,当计时器开始时,他们采取以下两种方式之一:定时器倒计时显示从正确的一个开始的秒数(然后跳过一个)45,43,42,41等)或另一个时间它不显示起始值并直接跳转到(44,44,42,41等)并且不跳过任何。

最终,我希望这些计时器合理地显示初始值和倒计时。即总是首先显示45,然后是44,43,42,41等。

关于为什么这可能会或可能不会这样做的任何想法? 我在班上使用了android CountDownTimer。

更新:这是我的CountDownTimer的代码

    public CountDown (long millisInFuture, long countDownInterval, Button button ) {
    super(millisInFuture, countDownInterval);
    this.button = button;
}


//Timer Countdown
@Override
public void onTick(long millisUntilFinished) {
    long timeRemaining = (millisUntilFinished/1000);
    button.setText((millisUntilFinished/1000)+"");

1 个答案:

答案 0 :(得分:0)

我试图复制这个问题,但不能。也许发布你的代码?

这是我的简单测试,它首先显示45,然后按顺序倒计时,并在零结束时完成。

    Button b = (Button) findViewById(R.id.button1);
    final TextView tv = (TextView) findViewById(R.id.tv_1);

    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new CountDownTimer(45 * 1000, 1000) {
                int x = 45;

                @Override
                public void onTick(long millisUntilFinished) {
                    tv.setText(Integer.toString(x));
                    x--;

                }

                @Override
                public void onFinish() {
                    tv.setText("0");

                }
            }.start();

        }
    });