0

我正在用 Android 开发视频游戏。为此,我使用了一个游戏循环及其包含的所有典型内容。我对 android 中的活动状态有疑问。

我需要一个活动来创建 GLSurfaceView,因此,问题是活动,当它完成其 onCreate 方法时,以这种方式继续:onCreate -> onResume -> onStart -> onStop。我猜它会通过这些状态,因为活动没有任何事情可做,而且是循环在工作。但我对这种行为有疑问:

我如何知道用户何时“最小化”或将设备置于待机状态?再次,方法 onStop -> onResume -> onStart 将触发,但是,这一次与第一个方法有何不同?

当用户将设备切换为待机时,我需要停止循环,但在第一次启动时不需要。

我希望我已经解释得很好。谢谢。

4

1 回答 1

0

如果 onStop 在 onStart 之后立即运行,则说明有问题。只有当它不再对用户可见时,活动才会被置于停止状态。我猜,除非您的代码立即创建另一个将其替换为前台活动的活动,但如果该活动在屏幕上可见,则不应触发 onStop。一些代码将有助于诊断。

当活动仍然可见但有另一个活动正在恢复时,会发生 onPause。如果您在用户退出应用程序、接听电话、关闭屏幕等时尝试保存游戏数据或其他内容,我会使用 onPause,因为不能保证调用 onStop 并且您运行在您可以做您需要做的事情之前,系统在某些情况下会杀死您的活动的风险。

有关活动生命周期的更多信息,请参阅活动指南

于 2012-11-05T22:50:01.660 回答