[英]Count down timer showing negative number error android
全部。 我面臨着我難以理解的情況。 我做了一個倒數計時器,它設置為在值達到 0 時移動到下一個方法。問題是有時它會顯示負數,例如 -03:-15。
為了更具體地幫助您理解我的計時器,它並不總是從 1 分鍾開始,因為它反映了當前的秒數。 例如,如果是 17:00:20,它會從 40 倒數到 0。當它是 17:00:35 時,它會從 25 倒數到 0。
倒計時代碼
fun getNowTimeSecond() : String {
val now: Long = System.currentTimeMillis()
val date = Date(now)
val dateFormat = SimpleDateFormat("ss")
return dateFormat.format(date)
}
private var mTimer = Timer()
private fun startTimer() {
var remainTime = 60 - getNowTimeSecond().toInt()
mTimer = timer(period = 1000) {
remainTime--
_time.postValue("Time : " +
(remainTime / 60.0).toInt().toString().padStart(2,'0') + ":" +
(remainTime % 60).toInt().toString().padStart(2,'0'))
if(remainTime == 0) stopTimer()
}
}
private fun stopTimer() {
mTimer.cancel()
}
我認為問題可能是startTimer()
可能被多次調用。 mTimer
將被新的計時器覆蓋。 舊計時器將永遠運行,因為即使舊計時器達到 0,舊計時器也會通過調用stopTimer()
取消新計時器。 一個解決方案可能是在startTimer()
開始時調用mTimer.cancel()
(或stopTimer()
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.