按下子活动后退按钮后,Android主要活动的元素无响应

时间:2015-09-02 01:39:33

标签: java android android-activity back-button restart

我在游戏应用程序中有两项活动。一个父菜单活动,带有两个按钮,每个按钮都有一个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()方法在恢复到菜单活动时被调用,我认为没有办法更深入地调试它。

1 个答案:

答案 0 :(得分:0)

问题是子活动中正在运行的线程没有正确停止 - 我在加入之前错过了一个setRunning(false)。我假设UI线程无论如何都做了他们的工作。修复线程后,后退按钮正常工作。