【发布时间】:2018-04-19 23:55:16
【问题描述】:
【问题讨论】:
【问题讨论】:
可能您正在使用static 资源,这是导致此问题的最常见原因。
当您的应用暂停时,操作系统可能会决定关闭它(以释放内存),包括其 OpenGL 上下文,但不能保证这样做。
当您的应用进入前台时,操作系统会启动您的应用的一个新实例。为此,它会重复使用与您的应用程序的前一个实例相同的虚拟机,包括它已经加载的所有资产。这也意味着任何静态变量都将具有它们上次运行应用程序时的值。如果这些变量中的任何一个包含任何资源,那么这些资源将不再有效。您的应用程序创建了一个新的 OpenGL 上下文,但资产仍指向旧的无效上下文。
所以我建议不要在 android 中保留/使用 static 资源,例如AssetManager, Texture, BitmapFont....
如果您仍然决定使用静态,请确保充分了解它们的生命周期。
【讨论】: