Java n秒后调用函数的延迟
为了在n秒后调用函数,我使用下面的代码Java n秒后调用函数的延迟,java,android,handler,runnable,Java,Android,Handler,Runnable,为了在n秒后调用函数,我使用下面的代码 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { myFunction(); } }, n); 此代码uxcetute n次while语句为true,但在最后一次执行时有几秒钟的“延迟”(延迟、保留)。如何避
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
myFunction();
}
}, n);
此代码uxcetute n次while语句为true,但在最后一次执行时有几秒钟的“延迟”(延迟、保留)。如何避免这种“延误”?也许这个(以上)决定对我的任务来说不是一个好决定
完整代码在这里
public void onClick(View v){
if (v.getId() == bn.getId()) {
int[] j = { 1, 2 };
Random ran = new Random();
int randomstart = ran.nextInt(j.length);
if (randomstart == 1) {
new_game();
} else {
new_game();
aiClick();
}
return;
}
if (checkWin() == 2) {
winfinishrandom();
wins++;
calc();
MainActivity.this.draw_flag();
if (wins - loses == 10) {
wins = 0;
loses = 0;
draws = 0;
}
draw_line();
} else {
int[] x = { 1, 2 };
Random random = new Random();
int randomaray = random.nextInt(x.length);
if (randomaray == 1) {
draw_images();
aiClick();
} else {
draw_images();
int[] j = { 1000, 2000 };
Random ran = new Random();
int randomstart = ran.nextInt(j.length);
if (randomstart == 1000) {
// SLEEP 2 SECONDS HERE ...
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
aiClick();
}
}, randomstart);
} else {
// SLEEP 2 SECONDS HERE ...
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
aiClick();
}
}, randomstart);
}
}
}
}
如果您想在n秒后运行一个方法,那么您不需要乱创建新线程。有一个名为
Thread.sleep(以毫秒为单位的时间)
的内置方法,其使用方式如下:
try {
Thread.sleep(1000); // 1000 ms = 1s however long you want it
} catch (InterruptedException e) {
e.printStackTrace(); // It can cause exception so needs to be in a try-catch statement
}
//Run the method here
someMethod();
别大拇指朝下,恐龙们,告诉我出了什么问题,我会解决的,除了vasgan eshshaklarni og'izina siktim,jalaplar