我正在尝试做的是while循环延迟15秒并且在循环内部我想要执行齐射请求..循环正在工作但没有延迟
这是我的代码:(client2是凌空请求方法)
new Thread(new Runnable() {@Override
public void run() {
while (h < taxiidlist.size() && assined == false && requested == true) {
handler2.post(new Runnable() {@Override
public void run() {
client2(user.id, taxiidlist.get(h));
h++;
}
});
try {
Thread.sleep(15000);
} catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
答案 0 :(得分:1)
我不明白为什么代码不起作用。一个可能的问题可能是您忘记在传递内部Runnable实例的run()
内调用handler.post()
。
尝试使用此示例代码(仅执行一次循环)并查看是否可以在您的问题中发现问题。
private static List<String> taxiidlist = new ArrayList<>();
static int h = 0;
public static void main(String[] args) {
int id = 0;
boolean assined = false;
boolean requested = true;
taxiidlist.add("One");
new Thread(new Runnable() {
@Override
public void run() {
while (h <= taxiidlist.size() && assined == false && requested == true) {
post(new Runnable() {
@Override
public void run() {
client2(id, taxiidlist.get(h));
h++;
try {
Thread.sleep(1500);
System.out.println("slept!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
break;
}
}
}).start();
}
static void post(Runnable runnable) {
System.out.println("post!");
runnable.run();
}
static void client2(int id, String s) {
System.out.println("client2!");
}
希望这会有所帮助:)