Java / Android编程 – 循环失败

我正在使用带定时器的while循环。 问题是每个循环都没有使用计时器。 它仅在第一次使用。 在第一次之后,循环中包含的语句被执行而没有我设置的延迟。 由于定时器包含在while循环中,因此甚至可以实现这一点。 有解决方案?

int count = 1; while (count <= 10) { final Handler handler = new Handler(); Timer t = new Timer(); t.schedule(new TimerTask() { public void run() { handler.post(new Runnable() { public void run() { // Stuff the while loop executes } }); } }, 20000); count++; } 

TimerTask启动一个新线程,然后循环继续正常进行。

线程的执行不会导致循环中执行代码的延迟。

这是因为你要排队10个祝酒,一小时全部执行。 循环的每次迭代只需要几分之一毫秒或者稍微多一点。 要正确排列它们,您每次可以执行3600000 *计数而不是3600000计数。

尽管如此,这是一种可怕的方式。 你应该使用AlarmManager这样的东西。

您计划在一小时后同时执行10个TimerTask 。 因此,所有10个任务都在1小时后执行,这使得它看起来像1执行,因为所有Toast消息同时显示。 要以固定延迟计划任务,第一个任务从1小时开始,请使用以下方法:

 Timer t = new Timer(); t.schedule(task, 3600000, 3600000); 

这将执行,直到您调用t.cancel()