gpt4 book ai didi

android - 计时器在 Android 中不停止

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:26 25 4
gpt4 key购买 nike

问题我在 android 中开发时遇到停止计时器的问题。

计时器在停止时已经为空。

然后我将定时器初始化移动到一个方法之外,就像 TimerTask 解决了 null 问题但在 timer.cancel(); 时仍然没有取消被召唤。

下面的代码是停止录制时计时器已经为空的示例。

定时器任务

我的 TimerTask在类内部初始化,但在方法和下面的代码之外...

private TimerTask task = new TimerTask() {
@Override
public void run() {
Log.e("TRACK_RECORDING_SERVICE","Timer Running");
}
};

定时器和定时器启动

然后我有一个 startRecroding 方法,当我想启动计时器时调用它...

public void startRecording(){
timer = new Timer("Message Timer");
timer.scheduleAtFixedRate(this.task, 0, 1000);
}

计时器停止

当我想停止计时器时,我会调用下面的方法...

public void stopRecording() {
if (timer != null) {
timer.cancel();
timer = null;
} else {
Log.e("TRACK_RECORDING_SERVICE","Timer already null.");
}
}

如有任何帮助,我们将不胜感激。

最佳答案

timer = new Timer("Message Timer"); 

这里您的对象 timer 不是 static 所以 timer.cancel(); 将取消 Timer 类的另一个实例。我建议你在类的顶部创建一个 Timer 类的静态实例变量,如下所示,

private static Timer timer;

关于android - 计时器在 Android 中不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com