我遇到Android计时器scheduleAtFixedRate选项的问题。
Timer timer = new Timer();
TimerTask myTimerTask = new TimerTask() {
public void run() {
...
}
};
timer.scheduleAtFixedRate(myTimerTask, 0, 5000);
这个片段对我来说是坏事。它在服务中执行,因此每次调用方法时,timer会创建一个新线程,并在旧线程仍在运行时执行相同的代码;这会产生性能问题。我需要每隔5秒在run()方法中运行代码,但我希望取消旧任务。有没有办法解决这个问题?
答案 0 :(得分:0)
您可以使用timer.cancel()
停止计时器。
例如,我有一个结束按钮来提前完成计时器:
finishEarlyButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
timer.cancel();
}
});