问题 我在android中开发时停止Timer有问题.
在停止计时器时,计时器已经为空.
然后我将定时器初始化移动到方法之外,就像TimerTask一样,它解决了null问题,但是在timer.cancel();调用它时仍然没有取消.
下面的代码是计时器在停止录制时已经为空的示例.
的TimerTask
我TimerTask在课堂内初始化,但在方法和下面的代码之外......
private TimerTask task = new TimerTask() {
@Override
public void run() {
Log.e("TRACK_RECORDING_SERVICE","Timer Running");
}
};
Run Code Online (Sandbox Code Playgroud)
定时器和定时器启动
然后我有一个startRecroding方法,当我想启动计时器时调用它...
public void startRecording(){
timer = new Timer("Message Timer");
timer.scheduleAtFixedRate(this.task, 0, 1000);
}
Run Code Online (Sandbox Code Playgroud)
定时器停止
我想在停止计时器时调用下面的方法......
public void stopRecording() {
if (timer != null) {
timer.cancel();
timer = null;
} else {
Log.e("TRACK_RECORDING_SERVICE","Timer already null.");
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
Luc*_*fer 19
timer = new Timer("Message Timer");
Run Code Online (Sandbox Code Playgroud)
这里你的对象timer不是static这样timer.cancel();会取消Timer类的另一个实例.我建议你在类的顶部创建一个Timer Class的静态实例变量,如下所示,
private static Timer timer;
Run Code Online (Sandbox Code Playgroud)