簡體   English   中英

倒數計時器顯示負數錯誤android

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM