调用一次实现Runnable的线程,调用surfaceDestroyed

时间:2015-02-01 03:04:21

标签: java android

我有一个名为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) {
        }
    }
}

0 个答案:

没有答案