说白了,就是个倒计时功能。固定25分钟。倒计时完毕算作一个番茄钟。
一说倒计时,android中常用的实现方式:
1、CountDownTimer
2、Timer + TimerTask
3、Handler
由于需要开始,暂停,继续,停止功能,我选择了使用Handler实现。
主要代码:
private val mHandler: Handler = object : Handler() {
override fun handleMessage(msg: Message) {
synchronized(this@CountDownTimer) {
if (!mPaused) {
val millisLeft =
mStopTimeInFuture - SystemClock.elapsedRealtime()
if (millisLeft <= 0) {
onFinish()
} else {
val lastTickStart = SystemClock.elapsedRealtime()
onTick(millisLeft)
var delay = lastTickStart + mCountdownInterval - SystemClock.elapsedRealtime()
while (delay < 0) delay +=