我想在延迟后重复执行一些代码。以下是代码。
public void hintrun(int i){
Handler handler = new Handler();
for(int j = 1; j< i+1;j++) {
handler.postDelayed(new Runna(j), 1000);
}
}
class Runna implements Runnable {
private int j;
public Runna(int j2) {
j=j2;
}
public void run() {
// some code
}
}
但它不起作用。如果说for
循环运行3次,则代码在1000毫秒后立即运行三次。我想在每次执行之间留出1000毫秒的差距。
答案 0 :(得分:2)
你可以这样简单地改变你的循环代码,
for(int j = 1; j< i+1;j++)
{
handler.postDelayed(new Runna(j), 1000*j); // 1000 * J
}
答案 1 :(得分:1)
然后替换
handler.postDelayed(new Runna(j), 1000);
与
handler.postDelayed(new Runna(j), 1000*(i+1));
答案 2 :(得分:1)
如果你想要每次执行Runna之间的差距。你需要增加延迟的时间。
e.g。
handler.postDelayed(new Runna(j),1000 * j);