每次我的应用通过 applicationWillResignActive 上的 session.pause() 后台运行时,我都会暂停 ARKit。
我最近注意到用户的后台电池使用率偶尔会很高,现在偶尔会看到当应用程序处于后台时,我会在控制台中收到一堆这样的消息:
2018-07-25 16:18:57.691271-0700 Neon[6918:1740969] 由于执行期间出现错误,命令缓冲区的执行中止。权限不足(从后台提交 GPU 工作)(IOAF 代码 6) 2018-07-25 16:18:57.691374-0700 Neon[6918:1740969] 命令缓冲区的执行由于执行期间的错误而中止。权限不足(从后台提交 GPU 工作)(IOAF 代码 6) 2018-07-25 16:18:57.691425-0700 Neon[6918:1740969] 命令缓冲区的执行由于执行期间的错误而中止。权限不足(从后台提交 GPU 工作)(IOAF 代码 6) 2018-07-25 16:18:57.692061-0700 Neon[6918:1740674] 命令缓冲区的执行由于执行期间的错误而中止。权限不足(从后台提交 GPU 工作)(IOAF 代码 6) 2018-07-25 16:18:57.692100-0700 Neon[6918:1740674] 命令缓冲区的执行由于执行期间的错误而中止。权限不足(从后台提交 GPU 工作)(IOAF 代码 6)
当我查看能源和 CPU 使用率时,它们超出了图表。但是,其他时候,我不会收到这些消息,而且 cpu/能源使用率很小。
我的想法是暂停在应用程序后台运行之前没有完成。我更新了我的应用程序以使用 backgroundTask 来暂停 ARSession 对象,但我仍然观察到偶尔的行为。
关于可能发生的事情以及如何解决它有什么想法吗?
谢谢!
最佳答案
因此,看起来这是在 ARKit 仍在初始化时将应用程序置于后台的情况,因此暂停没有影响。此外,当它完成初始化时,它会在后台运行 ARKit,从而产生有关无法在后台运行和耗尽电池的 GPU 错误。
关于ios - ARKit ARSession 有时在应用程序后台运行之前不会暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51529023/