我在游戏应用程序中有两项活动。一个父菜单活动,带有两个按钮,每个按钮都有一个onClick,以及一个包含游戏循环的子(游戏)活动。
当我按下游戏活动中的后退按钮时,菜单似乎正确恢复:两个按钮位于正确的位置,看起来像以前一样。
问题是按钮不再起作用。同样适用于android的后退按钮。虽然单击它后面的按钮会闪烁,但没有任何反应。
我的猜测是它与android的内存管理或游戏循环有关。我摧毁了SurfaceView的surfaceDestroyed:
里面的游戏线程@Override
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
while (retry) {
try {
gameEngine.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
我没有使用自定义覆盖方法来恢复和重新启动。由于活动的外观恢复正常,并且onResume()方法在恢复到菜单活动时被调用,我认为没有办法更深入地调试它。
答案 0 :(得分:0)
问题是子活动中正在运行的线程没有正确停止 - 我在加入之前错过了一个setRunning(false)。我假设UI线程无论如何都做了他们的工作。修复线程后,后退按钮正常工作。