为什么 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
.
的实际准确性有更大的了解
我正在尝试使用 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
.