我有一个名为GameLoopThread的线程类,它实现了Runnable。我还有一个名为GameView的类,它扩展了SurfaceView并实现了SurfaceHolder.Callback。当我在GameView类中调用surfaceDestroyed时,我想暂停该线程。当GameLoopThread扩展Thread而不是实现Runnable时,我调用了gameLoopThread.join()。
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
gameLoopThread.setRunning(false);
while (retry) {
try {
gameLoopThread.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
然而,现在我正在GameLoopThread中实现Runnable,因为大多数人都认为这是更好的练习,我需要一个替代方法来调用join()。我该如何编辑surfaceDestroyed方法?
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
gameLoopThread.setRunning(false);
while (retry) {
try {
//Edit this line
retry = false;
} catch (InterruptedException e) {
}
}
}