为什么 CountDownTimer 不允许低于 1s 的间隔?

Why CountDownTimer doesn't let lower intervals than 1s?

我正在尝试使用 CountDownTimer 对象,但它不允许我更改 countDownInternval。如果我尝试将其设置为“500”,定时器的工作方式与我使用“1000”的方式相同。这是为什么?它应该快两倍。

object : CountDownTimer(30000, 500) {

                override fun onTick(millisUntilFinished: Long) {

                    TextView.text = (millisUntilFinished / 1000).toString() + ""
                }

                override fun onFinish() {
                   TextView.text = ("done!")
                }
            }.start()

如果您使用此代码,

millisUntilFinished / 1000

那么 TextView 只能取整数值,因为您使用的是 integer division。它 大约每秒更新两次,但它连续两次将相同的整数放入其中,如下所示:

29
29
28
28
27
27

...等等。我建议您试试这个:

millisUntilFinished

或者这个:

millisUntilFinished / 1000.0f

以便您可以看到每次更新,并对 CountDownTimer.

的实际准确性有更大的了解