我正在使用一个名为 Game 的 Activity、一个名为 GameView 的 SurfaceView 和一个名为 GameThread 的线程制作一个 Android 游戏。游戏的onCreate(),我新建了一个GameView,新建了一个GameThread,所有的游戏逻辑和画布绘制都在这里进行。
但是,我遇到了一些生命周期困难。当我按下并重新启动它时,它工作正常,但是当我按下主页并重新启动它时,我看到的只是一个空白屏幕。下面是 GameView 的 onSurfaceCreated() 和 onSurfaceDestroyed():
@Override
public void surfaceCreated(SurfaceHolder holder) {
mThread.mRunning = true;
mThread.mWidth = getWidth();
if(mThread.mWidth > 550) mThread.mWidth = 550;
mThread.mHeight = getHeight();
try {
mThread.start();
} catch(IllegalThreadStateException e) {
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// Wait for the secondary thread to end before finishing
boolean retry = true;
mThread.mRunning = false;
while (retry) {
try {
mThread.join();
retry = false;
} catch (InterruptedException e) {
}
}
}