按下主页并重新启动后Android游戏变为空白

时间:2010-04-06 13:28:54

标签: android surfaceview

我正在制作一款名为Game的Activity,一款名为GameView的SurfaceView和一款名为GameThread的Thread游戏。游戏的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) {
        }
    }       
}

1 个答案:

答案 0 :(得分:0)

根据我的经验,后退按钮完成了Activity,所以当你重新启动它时,会再次调用onCreate方法。

主页按钮没有完成活动,当您按下主页按钮时,活动的onPause方法被调用,当您重新启动它时,调用的方法是onResume。

我猜你在onCreate中有一些代码负责创建SurfaceView。尝试将此代码添加到onResume方法(覆盖它)...