0

这应该很简单,但我似乎无法解决。

我想创建一个方法,该方法将在调用一段时间后返回一个布尔假值。

我尝试过 for、while 和 switch 语句,但没有一个具有预期的效果。

原因:我有一个触摸事件,它改变一个布尔值来激活一个游戏状态。我希望这个值在一段时间后变回 false 以避免用户持有触摸事件来无限期地保持游戏状态。

我在我的游戏循环中尝试了以下方法,在一段时间后将值改回 false。这将在调用状态激活方法的同时被调用。

private void stateCounter() {
     int count = 100;
       for (int i =0; i < count ; i++) {
       stateBoolean = true;
       }
       stateBoolean = false;

}



private void stateCounter() {
     int count = 1;
       while (count < 100) {
       stateBoolean = true;
       count++;
       }
       stateBoolean = false;

}

做这个的最好方式是什么?

4

1 回答 1

0

使用Handler.PostDelayed方法在间隔后执行一些任务。例如

Handler h = new Handler();
h.postDelayed(new Runnable(){
    public void run(){
        // perform your tasks here
    }
},interval);

但有一件事我不清楚。你想在触摸完成时更改计数器(即手指向上)。在这种情况下,您可以使用它

yourButton.setOnTouchListener(new OnTouchListener () {
  public boolean onTouch(View view, MotionEvent event) {
    else if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
      // call the method now
    }
  }
}
于 2013-05-26T06:46:13.613 回答