在 Android 中停止并重新启动计时器任务
Stop and restart timer task in Android
我需要停止当前的 运行ning 计时器任务并以不同的延迟重新启动它。我尝试了几种方法,但没有任何效果。当我使用以下代码时,TimerTask 将在两次延迟中都达到 运行。
public void restUploadInterval(long newDelay) {
timerRealData.cancel();
timerRealData.purge();
mMqttSupporter = MqttSupporter.getInstance();
Timer timerRealData = new Timer();
delay = newDelay;
UploadingTask uploadingTask = new UploadingTask();
timerRealData.scheduleAtFixedRate(uploadingTask, delay, delay);
}
请告诉我如何停止当前的计时器任务并 运行 以不同的延迟再次执行它。
和你一样。
要以不同的时间重新启动计时器,您需要取消() 旧计时器并创建一个新计时器。
您的代码可能无法正常工作,只是因为您将成员变量 timerRealData 隐藏为具有相同名称的局部变量。
尝试改变:
Timer timerRealData = new Timer();
和
timerRealData = new Timer();
它应该可以工作。
我需要停止当前的 运行ning 计时器任务并以不同的延迟重新启动它。我尝试了几种方法,但没有任何效果。当我使用以下代码时,TimerTask 将在两次延迟中都达到 运行。
public void restUploadInterval(long newDelay) {
timerRealData.cancel();
timerRealData.purge();
mMqttSupporter = MqttSupporter.getInstance();
Timer timerRealData = new Timer();
delay = newDelay;
UploadingTask uploadingTask = new UploadingTask();
timerRealData.scheduleAtFixedRate(uploadingTask, delay, delay);
}
请告诉我如何停止当前的计时器任务并 运行 以不同的延迟再次执行它。
和你一样。
要以不同的时间重新启动计时器,您需要取消() 旧计时器并创建一个新计时器。
您的代码可能无法正常工作,只是因为您将成员变量 timerRealData 隐藏为具有相同名称的局部变量。
尝试改变:
Timer timerRealData = new Timer();
和
timerRealData = new Timer();
它应该可以工作。