暂停Android应用,直到按下按钮

时间:2014-12-29 13:37:42

标签: java android android-studio do-while buttonclick

我有两个方法:go()和stop(),以及循环遍历这些方法3次的for循环。循环开始时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次?

由于

3 个答案:

答案 0 :(得分:3)

如果发生这种情况,则无法阻止主线程超过5秒,然后弹出一个anr(应用程序未响应)对话框。

答案 1 :(得分:0)

试试这个

private boolean isStop = true;
private int buttonPressedCount = 0;

private void goOrStop() {
    if(isStop) {
      go();
      isStop = false;
    } else {
       stopIfCan(); // :)
    }
}

private void stopIfCan() {
    if(buttonPressedCount >= 3 ) {
        buttonPressedCount = 0; 
        isStop = false;
        stop();
    }
}

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

答案 2 :(得分:0)

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

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();
        }
    }
}

当按下按钮三次时,此代码运行stop(),但只运行三次。 (9次按后没有任何事情发生)