如何使用CountDownTimer(kotlin)

如何使用CountDownTimer(kotlin)

情境

倒數計時器是一個很方便的工具,如果你想要讓畫面有一個數字倒數計秒,可以透過這個 CountDownTimer 簡單的小類別來進行實作,更多詳細的資訊可以參照官網 CountDownTimer

完整程式碼

如果你想看完整程式碼,可以到 GitHub 上觀看或下載。

程式碼說明

class MainActivity : AppCompatActivity() {  
  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        object : CountDownTimer(30000, 1000) {  
  
            override fun onFinish() {  
                info.text = getString(R.string.done)  
            }  
  
            override fun onTick(millisUntilFinished: Long) {  
                info.text = getString(remain).plus("${millisUntilFinished/1000}")  
            }   
        }.start()  
    }  
}

直接使用 CountDownTimer 這個類別,它會傳入兩個參數,
第一個參數是總共計時幾秒,以 0.001 為單位,因此要讓它倒數 30 秒就要乘上 30 * 1000,
第二個參數是每隔幾秒跳一次,一樣以 0.001 為單位,因此每隔一秒跳一次就是傳入 1000。

必須覆寫兩個方法:
一個是 Finish 一個是 onTick ,當每跳你傳入第二個參數的秒數一次的時候,
就會跳進 onTick 這個方法一次,而當秒數總和為的第一個參數,
這個計數就結束了,因此會跳進 Finish 這個方法。

所以我們在每跳一秒的時候, 就將目前的秒數呈現出來,
而當倒數結束的時候,就顯示 Done!






這樣就是一個簡單的倒數計時器了。