我正在开发一个有循环(不是游戏循环)的 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
唯一的被调用一次?