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