答案 0 :(得分:0)
您可能正在使用static
资源,这是导致此问题的最常见原因。
当您的应用暂停时,操作系统可能决定关闭它(释放内存),包括其OpenGL上下文,但不保证这样做。
当您的应用程序进入前台时,操作系统会启动您应用的新实例。为此,它会重新使用您应用的上一个实例的相同VM,包括已加载的所有资产。这也意味着任何静态变量都将具有上一次运行应用程序时的值。如果这些变量中的任何一个包含任何资源,那么这些资源将不再有效。您的应用程序创建了一个新的OpenGL上下文,但资产仍然指向旧的无效上下文。
所以我建议不要在Android中保留/使用static
资源,例如AssetManager
,Texture
,BitmapFont
....
如果你仍然决定使用静态,那么一定要完全理解它们的生命周期。