有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java循环在一段时间后将布尔值更改为false?

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

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

我尝试了、while和switch语句,但都没有达到预期效果

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

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

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;

}

最好的方法是什么


共 (1) 个答案

  1. # 1 楼答案

    使用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
        }
      }
    }