2011-11-12 124 views
1

我正在开发一款使用Lunar Lander作为教程的游戏,并且我有几个问题和一个问题。Android游戏编程问题

在我的游戏:

    当我按下Home键,在onPause()
  • 被调用。当我点击我的游戏图标重新回到游戏中时,我会看到游戏画面,但一切都被冻结了。
  • 当我按Back键时,onPause()被调用。当我点击我的游戏图标返回时,我会看到空白屏幕。
  • 在这两种情况下,我都看不到我的onResume()方法被调用。

所以我很困惑,为什么会发生这种情况。看Lunar Lander,没有onResume()。这是为什么?由于游戏线程在onPause()中停止,它又是如何启动的?

在我的游戏中,我不知道为什么onResume()没有被调用,但我认为它永远不会到达那里,因为有某种冻结。

Lunar Lander代码或我的代码是否缺少某些东西? LL代码句柄状态是否正确更改?最后,是否有更好的网络教程来处理游戏状态变化?

谢谢!

回答

0

在这两种情况下,我想当你点击你的应用程序图标时,在第一个实例上启动一个新的活动。我想说的Android文档是不是它说清楚,但如果你想确保你的应用程序的根活动只实例化一次需要添加:

android:launchMode="singleTask" 

的属性为活动的应用程序清单

+0

谢谢...我已经将它添加到清单文件,但问题仍然存在......它似乎被冻结或卡在循环中。我仍然不确定为什么在LL中没有onResume。难道一旦我重新进入应用程序,就没有游戏线程在运行? – Schizoid2k

+0

您的应用只使用一项活动吗?在这种情况下,您可以发布您正在使用的onCreate,onResume,onPause和onDestroy方法的摘录吗? –