Android 主 activity 的元素在按下子 activity 的后退按钮后没有响应
Android main activity's elements do not respond after pressing the back button from child activity
我的游戏应用程序中有两个活动。一个父菜单 activity 有两个按钮,每个按钮都有一个 onClick,一个子菜单(游戏)activity 包含游戏循环。
当我在游戏中按下后退按钮时 activity,菜单似乎正确地恢复了:两个按钮都在正确的位置并且看起来像以前一样。
问题是按钮不再起作用了。 android 的后退按钮也是如此。虽然点击后退键闪了,但是没有任何反应
我的猜测是它与android的内存管理或游戏循环有关。我在 SurfaceView 的 surfaceDestroyed:
中销毁了游戏线程
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
while (retry) {
try {
gameEngine.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
我没有使用自定义覆盖方法来恢复和重新启动。由于 activity 的外观恢复得很好,并且在恢复到菜单 activity 时调用了 onResume() 方法,我看不出有什么办法可以更深入地调试它。
问题是子 activity 中的 运行 线程没有正确停止 - 我在加入之前缺少 setRunning(false)。我假设 UI 线程无论如何都完成了它们的工作。修好线后,后退键正常使用
我的游戏应用程序中有两个活动。一个父菜单 activity 有两个按钮,每个按钮都有一个 onClick,一个子菜单(游戏)activity 包含游戏循环。
当我在游戏中按下后退按钮时 activity,菜单似乎正确地恢复了:两个按钮都在正确的位置并且看起来像以前一样。
问题是按钮不再起作用了。 android 的后退按钮也是如此。虽然点击后退键闪了,但是没有任何反应
我的猜测是它与android的内存管理或游戏循环有关。我在 SurfaceView 的 surfaceDestroyed:
中销毁了游戏线程@Override
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
while (retry) {
try {
gameEngine.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
我没有使用自定义覆盖方法来恢复和重新启动。由于 activity 的外观恢复得很好,并且在恢复到菜单 activity 时调用了 onResume() 方法,我看不出有什么办法可以更深入地调试它。
问题是子 activity 中的 运行 线程没有正确停止 - 我在加入之前缺少 setRunning(false)。我假设 UI 线程无论如何都完成了它们的工作。修好线后,后退键正常使用