Java 在android应用程序中,倒计时计时器在不同的时间启动

Java 在android应用程序中,倒计时计时器在不同的时间启动,java,android,timer,countdowntimer,Java,Android,Timer,Countdowntimer,我有一个应用程序,有两个定时器开始他们的按钮点击 当它们启动时,计时器倒计时显示在文本视图中,以便用户看到秒数倒计时(10、9、8、7等) 一个计数器是45秒计时器,另一个是30秒计时器。 我注意到,当计时器启动时,它们会以两种方式之一运行:计时器倒计时显示从正确的时间开始的秒数(然后跳过一个)45、43、42、41等,或者其他时间不显示开始值,直接跳到(44、43、42、41等),并且不会跳过任何时间 最终,我希望这些计时器能够合理地显示初始值和倒计时。即始终先显示45,然后显示44、43、4

我有一个应用程序,有两个定时器开始他们的按钮点击

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

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

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

你有没有想过为什么会这样做? 我在课堂上使用安卓倒计时

更新:这是我的倒计时代码

    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)+"");

我试图复制这个问题,但没有成功。也许发你的密码

这是我的简单测试,它先显示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();

        }
    });

抱歉-我的语言搞错了-不是文本视图,而是按钮的文本。我在上面更新了我的倒计时代码-谢谢!虽然我最终没有使用你的方法,但我会将它标记为答案,因为它确实有效。