我目前有一个每30秒运行一次的重复计划任务。有一个按钮可以停止,恢复和启动任务。问题是使用timer.cancel()
或timer.purge()
仍未处理启动/暂停功能
gpsTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
distanceCount = (member.stepLength / 100000) * stepCount; // cm to km
caloriesCount = 0.47 * member.weight * 2.20462262 * distanceCount;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("test1","t");
distance.setText(String.format("%.2f", distanceCount));
calories.setText(String.format("%.2f", caloriesCount));
}
});
}
}, 0, 10000);
gpsTimer.purge();
当我按开始时它运行scheduleAtFixed Rate,当我按停止/暂停时,它会运行清除,但是,任务没有停止,我尝试gpsTimer.cancel()
,但是当我再次运行时它会抛出异常。谢谢你的帮助
答案 0 :(得分:1)
这可以帮到你:
取消TimerTask
后,同样无法再次启动..
如果您想再次重复使用同一个对象,则必须创建new instance
...
或者您可以使用ScheduledExecutorService(来自Java 5 +)。