避免循环导致过载

时间:2012-12-23 11:46:39

标签: android loops try-catch

我正在开发一款安卓游戏,我有一个循环(不是游戏循环)。如果我的一个布尔值发生变化,这个循环会做出反应。问题是当布尔值发生变化时,它会调用循环内的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只被调用一次?

0 个答案:

没有答案