Android 我可以在运行时更改周期处理程序的间隔吗?
我有一个perodic处理器:Android 我可以在运行时更改周期处理程序的间隔吗?,android,timer,handler,Android,Timer,Handler,我有一个perodic处理器: int interval = 35000; Runnable runnableForConsumption = new Runnable() { @Override public void run() { handler.postDelayed(runnableForConsumption, interval); new ConnectWSTask().execute();
int interval = 35000;
Runnable runnableForConsumption = new Runnable() {
@Override
public void run() {
handler.postDelayed(runnableForConsumption, interval);
new ConnectWSTask().execute();
}
};
void startRepeatingTask() {
runnableForConsumption.run();
}
void stopRepeatingTask() {
handler.removeCallbacks(runnableForConsumption);
}
我希望第一次运行的间隔为2000ms,这次运行后的间隔为35000ms
是否可以在运行期间更改此处理程序的间隔
或者还有其他类似的方法吗?您可以尝试以下方法:
public void run(){
handler.postDelayed(runnableForConsumption, interval);
if(interval == 2000){
interval = 3500;
}
new ConnectWSTask().execute();
}
关键是在第二次
postDelayed
之前,将interval
更改为3500,我认为这不起作用。当我调用runnableForConsumption.run()时,run方法将执行一次代码>一旦在postdelayed中设置了间隔,它将始终在此间隔中执行。还是我的想法是错误的?哦,好的。这真的很有效。我没想到。但情况正好相反。postdelayed后面的if子句。编辑我的答案。当您第一次调用runnableForConsumption.run()
时,间隔
为2000,在run
方法中,间隔设置为3500,然后是postDelayed
。然后,您的第二次运行将安排在currentTime+3500
。所有后续的运行
将使用相同的延迟时间