Я делаю игру для Android с Activity под названием Game, SurfaceView под названием GameView и Thread под названием GameThread. В Game onCreate () я создаю новый GameView, который создает новый GameThread, в котором выполняется вся логика игры и рисование холста.
Однако у меня возникли некоторые трудности с жизненным циклом. Когда я нажимаю назад и перезагружаю его, он работает нормально, но когда я нажимаю home и перезагружаю его, я вижу только пустой экран. Вот onSurfaceCreated () и onSurfaceDestroyed () GameView:
@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) {
}
}
}