我的遊戲有問題 - 當遊戲爲0時,它應該顯示遊戲結束屏幕並完成遊戲活動,但屏幕會凍結。 在表面的代碼爲:Android爲什麼沒有完成活動
if(live <= 0){
try {
gameThread.setGameRunning(false);
gameThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
gameOverHandler.post(new Runnable() {
@Override
public void run() {
gameOver.onGameOver(score);
}
});
}
而且在GameActivity接口:
@Override
public void onGameOver(int score) {
Intent gameOver = new Intent(this, GameOver.class);
gameOver.putExtra("score", score);
startActivity(gameOver);
gameEngine.stop();
this.finish();
}
遊戲線程循環畫布繪製和發動機的角色的動作。
我希望你能幫助我。 謝謝!
一種可能性是gameOverHandler不是在UI線程上創建的,而是在後臺線程上創建的。在這種情況下,帖子不會執行到UI線程,完成可能沒有適當的效果。嘗試使用新的Handler(Looper.getMainLooper())在UI線程上創建gameOverHandler並嘗試它是否有效。 –
我明白你的意思,它是正確的,因爲在表面gameOver從來沒有分配,但我必須做到這一點,我不明白你的意思 - > Looper.getMainlooper()你可以描述它嗎? – shizzle31