2

我正在开发一个有循环(不是游戏循环)的 android 游戏。如果我的一个布尔值发生了变化,这个循环就会做出反应。问题是当布尔值改变时,它会调用循环内的 void,直到应用程序因过载而崩溃。我所呼唤的空白被试探所包围,它必须如此,除非我必须重新制作我的游戏的其余部分。循环的代码是这样的:

private void listenerVoid(){
  int timeBetweenChecks = 100;
  final Handler h = new Handler();
  h.postDelayed(new Runnable(){
    public void run(){
      //Do something if myBool returns true, otherwise loop again
      if (myBool==false){
        listenerVoid();

      } else {  
        //Check if the listener has reacted to a change before 
        if(firstStart!=false){
          firstStart = false;
          theTryCatchVoid();  
          Log.i("MyClass","Boolean is changed");
        }
        else{
          //Already started
          Log.i("MyClass","Already started");
        }
      }
    }
  }, timeBetweenChecks);
};

我的 try-catch void 与此类似:

private void tryCatchVoid(){
  try{
    //Try to do something that soemtimes causes a crash
  }
  catch(Exception e){
    //Do nothing
  }
}

我不能增加timeBetweenChecks时间,因为它会导致我的游戏等待时间很长。我怎样才能使tryCatchVoid唯一的被调用一次?

4

0 回答 0