我正在制作一款名为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) {
}
}
}
答案 0 :(得分:0)
根据我的经验,后退按钮完成了Activity,所以当你重新启动它时,会再次调用onCreate方法。
主页按钮没有完成活动,当您按下主页按钮时,活动的onPause方法被调用,当您重新启动它时,调用的方法是onResume。
我猜你在onCreate中有一些代码负责创建SurfaceView。尝试将此代码添加到onResume方法(覆盖它)...