8.3. ScheduledExecutorService
private var scheduler: ScheduledExecutorService? = null
fun timerStart() {
scheduler = Executors.newSingleThreadScheduledExecutor()
scheduler?.scheduleWithFixedDelay({
var time = elapsed(startTime, LocalDateTime.now())
timerLiveData.postValue(Pair(TIMER.TIMER, time))
}, 0, 1, TimeUnit.SECONDS)
}
fun timerStop() {
scheduler?.let {
if (!it.isShutdown) {
it.shutdown() // 优雅关闭(允许当前任务执行完毕)
// 可选:如果需要立即终止任务,使用 it.shutdownNow()
}
}
scheduler = null
}
fun timerReset() {
startTime = LocalDateTime.now()
}