提问人:alpheonix 提问时间:11/16/2023 更新时间:11/20/2023 访问量:29
阻止任务在开始之前运行
Prevent a task to run before it started
问:
您好,我已经创建了一个 TimerTask,该任务设置为在 5 秒后启动,但在我的应用程序中,用户可以执行一些必须阻止此任务运行的操作。如何在计时器结束之前取消任务并防止其发生?
这是我的代码:
val time = Timer("Timer",false)
Timber.tag("COMPOSABLE23").d(fingerprintFingerCount.name)
fun test(){
Timber.tag("COMPOSABLE24").d(fingerprintFingerCount.name)
if (fingerprintFingerCount.name == FingerprintScanStatus.ScanFew.name){
Timber.tag("COMPOSABLE2").d("Manger encore")
}
}
if (fingerprintFingerCount.name == FingerprintScanStatus.ScanFew.name){
Timber.tag("COMPOSABLE2").d("Manger")
time.schedule(5000){
test()
}
}else if(fingerprintFingerCount.name == FingerprintScanStatus.ScanNotStarted.name){
time.cancel()
}
答:
0赞
Tenfour04
11/20/2023
#1
将 TimerTask 的属性设置为可为 null 的类型。并且出于稳健性/组织原因,也将计时器放在属性中。var
private val timer = Timer("Timer", false)
private var timerTask: TimerTask? = null
创建 TimerTask 时,请取消之前的任何 TimerTask,以防万一。通过设置属性来创建计时器。然后安排它。这样,您将在属性中保留对它的引用,以便以后在需要时可以取消它。
timerTask?.cancel()
timerTask = object: TimerTask() {
override fun run() {
test()
}
}
timer.schedule(timerTask, delay = 5000L)
当您需要取消它时,您只需要致电 .timerTask?.cancel()
评论
else if