我给时间倒数计时器OnTick方法不起作用

时间:2018-11-14 11:37:42

标签: java android kotlin timer countdown

I'm Running one count down timer for 15 minutes which is equals to 100%,

当我进入应用程序时,对我来说很好。 我正在做的是,当我关闭应用程序时,我节省了启动时间,并使用当前时间打开了应用程序并计算了剩余时间。  在启动倒数计时器之前,我将剩余时间用于ontick方法。在第一个刻度上显示正确,但在下一个刻度上,从15分钟开始。谁能说出为什么发生

 countDownTimer = object : CountDownTimer(900000, 1000) {
                override fun onTick(millisUntilFinished: Long) {
                    activity?.runOnUiThread {
                        val minutes = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)
                        val seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))

                        val progress = 100 - ((((minutes / 15f) + (seconds / 900f)) * 100).toInt())

                        if (progress == 100) {
                            countDownTimer.cancel()
                            batteryHealthView.hideProgress()
                        }
                        saveData(progress, percentageString)
                    }
                }

                override fun onFinish() {
                    activity?.runOnUiThread {
                        countDownTimer.cancel()
                    }
                }
            }
            if (timeLeft!! > 0) {
                countDownTimer.onTick(timeLeft)
            }
            countDownTimer.start()

1 个答案:

答案 0 :(得分:1)

共享代码如何调用 CountDownTimer(900000,1000)似乎您每次都使用900000,相反,您需要重新计算剩余时间并在方法调用中传递该时间。