countDowntimer不重置新值并始终显示旧值

问题描述 投票:0回答:1

我想在我的活动中显示一个countDownTimer。我在countDowntimer中使用的值来自另一个使用bundle的活动的回收者视图。当我第一次点击其中一个recyclerview时间时,countDownTimer显示完美运行的时间。但是当我选择另一个时间时,旧实例继续运行。我已经实现了取消和onFinish()方法,但它们没有按我的意愿工作。我到处搜索,但每个人都建议取消和onFinish()方法。我现在无法找到解决方案。

public void getData() {
    if(countDownTimer!=null){
        countDownTimer.cancel();
    }

    if (replaceTime != null) {
        time = Integer.parseInt(replaceTime);
    } else
        Toast.makeText(FullTimerActivity.this, "",
                Toast.LENGTH_LONG).show();

    totalTimeCountInMilliseconds = time;

    timeBlinkInMilliseconds = 30 * 1000;


    countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 500) {

        @Override
        public void onTick(long leftTimeInMilliseconds) {
            long seconds = leftTimeInMilliseconds / 1000;

            if (leftTimeInMilliseconds < timeBlinkInMilliseconds) {
                if (blink) {
                    // mTextField.setVisibility(View.VISIBLE);
                    // if blink is true, textview will be visible
                } else {
                    //   mTextField.setVisibility(View.INVISIBLE);
                }

                blink = !blink;
            }

            String a = String.format("%02d", seconds / 60) + ":" + String.format("%02d", seconds % 60);
            textView.setText(a);

        }

        @Override
        public void onFinish() {
            Toast.makeText(FullTimerActivity.this, "Finished", Toast.LENGTH_SHORT).show();
        }

    }.start();
}

先感谢您。

android countdowntimer
1个回答
0
投票

在onFinish()中也将文本设置为TextView,如下所示

textView.setText("0");
© www.soinside.com 2019 - 2024. All rights reserved.