2

我想在延迟后重复执行一些代码。以下是代码。

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 毫秒后立即运行 3 次。我希望每次执行之间有 1000 毫秒的间隔。

4

3 回答 3

2

您可以通过这种方式简单地更改循环代码,

for(int j = 1; j< i+1;j++)
{
    handler.postDelayed(new Runna(j), 1000*j); // 1000 * J
}
于 2012-07-27T13:20:56.697 回答
1

然后替换

handler.postDelayed(new Runna(j), 1000); 

handler.postDelayed(new Runna(j), 1000*(i+1));
于 2012-07-27T13:19:40.613 回答
1

如果你想要 Runna 的每次执行之间有一个间隔。您将需要增加延迟的时间。

例如

handler.postDelayed(new Runna(j),1000 * j);
于 2012-07-27T13:20:39.073 回答