1

我正在尝试符合 iOS4 上的多任务处理。我不是在后台运行,我只是想尽可能恢复到运行状态。我是一个全GL游戏。

在 applicationWillResignActive 期间,我设置了停止 GL 渲染并整理并静默暂停游戏的标志。

在 applicationDidEnterBackground 期间,我释放屏幕缓冲区并调用 glFinish。

在 applicationWillEnterForeground 我再次分配缓冲区

在 applicationWillEnterForeground 我取消暂停游戏

现在,所有这些都被调用并且它起作用了。即,如果我点击主页按钮,游戏就会消失,如果我点击图标,它会以相同的状态返回。该应用程序不会被终止。运行小型应用程序然后返回我的应用程序也是如此。

但是,如果我运行一个大型应用程序(例如另一个游戏)并返回,我会返回最后渲染的帧。停顿 5 秒。然后游戏重新启动,或者只是回到跳板。

我到处都有日志,在失败返回的调试器中,我没有调用 applicationWillEnterForeground 或 applicationWillEnterForeground,我只得到一个 (gdb)。

据我了解,如果系统需要我的记忆,它将被默默地杀死。这很好,因为我在进入后台时会保存所有内容。那么为什么我再次运行它时会得到最后一个渲染帧,为什么它有时会启动有时会崩溃?

我在这里遵循了指南:http: //developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ImplementingaMultitasking-awareOpenGLESApplication/ImplementingaMultitasking-awareOpenGLESApplication.html

有谁知道我错过了什么?

谢谢

4

0 回答 0