重装时按钮纹理乱码(Libgdx)

时间:2017-11-07 14:26:44

标签: android libgdx reload

我正在开发一个libgdx游戏。 当我从后台应用程序加载游戏时,它显示如下。 可能的原因是什么?

Correct Image

Garbled texture

1 个答案:

答案 0 :(得分:0)

您可能正在使用static资源,这是导致此问题的最常见原因。

当您的应用暂停时,操作系统可能决定关闭它(释放内存),包括其OpenGL上下文,但不保证这样做。

当您的应用程序进入前台时,操作系统会启动您应用的新实例。为此,它会重新使用您应用的上一个实例的相同VM,包括已加载的所有资产。这也意味着任何静态变量都将具有上一次运行应用程序时的值。如果这些变量中的任何一个包含任何资源,那么这些资源将不再有效。您的应用程序创建了一个新的OpenGL上下文,但资产仍然指向旧的无效上下文。

所以我建议不要在Android中保留/使用static资源,例如AssetManagerTextureBitmapFont ....

如果你仍然决定使用静态,那么一定要完全理解它们的生命周期。