我有两个方法:go()和stop(),以及一个for循环遍历这些方法3次。 go()在循环开始时自动激活,并且stop()仅在按下按钮3次后才会激活:

private static int buttonPress;

for (int i = 0; i < 3, i++) {
    go();
    do {} while(pressCount < 4);
    stop();
}


每当按下按钮时,pressCount都会增加1:

public void button(View v) {
    pressCount++;
}


问题在于使用此设置,当do while循环启动时,应用程序冻结并崩溃。

有什么方法可以解决此问题,同时仍可以在stop()之前激活go(),在pressCount大于3之后激活stop(),并循环3次?

谢谢

最佳答案

您无法暂停主线程,应用程序冻结。

private int loopCount = 0;
private int pressCount = 0;

public void button(View v) { /* Runs when button is clicked */
    if (loopCount < 4){
        pressCount++;

        if (pressCount == 3){
            pressCount = 0;
            loopCount++;
            stop();
        }
    }
}


按下按钮3次后,此代码运行stop(),但仅运行3次。 (按9次后无任何反应)

07-25 21:28