java - 在新活动中如何停止倒数计时器
问题描述
我已经在我目前正在做的游戏中实现了一个倒数计时器,所以当计数器变为 0 时,它会将您带回到活动的开始,但是如果在时间结束之前正确回答了问题并开始新的活动计时器仍在继续,带我回到起点。所以我想知道我需要做什么来纠正这个问题,以便在开始新活动时计时器停止。我对这一切都很陌生,我边走边学。
{
context = this;
new CountDownTimer(+16000, 1000) {
public void onTick(long millisUntilFinished) {
TextView variable = (countdownText);
final int counter = Main1Activity.this.counter;
textView.setText(String.valueOf(counter +15));
Main1Activity.this.counter--;
if(countdownTimer != null) countdownTimer.cancel();
}
public void onFinish() {
// Here do what you like...
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
}
}.start();
}
解决方案
您可以使用计时器运行的活动的生命周期函数轻松克服困难。您所要做的就是在活动暂停或销毁时停止计时器。
因此,您可以执行以下操作。
@Override
protected void onPause() {
super.onPause();
if(countDownTimer != null) countDownTimer.cancel();
}
要了解活动生命周期,请在此处查看此文档。
推荐阅读
- vue.js - Nuxt 404 错误页面应重定向到主页
- selenium - selenium 出现这个错误如何解决
- javascript - iOS中的模态背景滚动禁用
- node.js - 如何配置 Webpack 将 node_modules 优先于我的其他依赖项?
- node.js - 未找到模块:错误无法解析“child_process”,如何解决?
- aurelia - 使用 buffer.js 时出现 aurelia-cli 错误 - 全局未定义
- python - 如何从给定的范围数组创建数组
- python - 如何修复此 python/pygame 程序中的“关键错误”?
- kubernetes - Horizontal Pod Autoscaler 中 API 版本 v2beta1 和 v2beta2 之间的区别?
- php - PHP strip_tags html 验证和括号检查?