按钮纹理在重新加载时出现乱码 (Libgdx)

Buttons texture garbled (Libgdx) upon reload

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

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

当您的应用程序暂停时,OS 可能会决定关闭它(以释放内存),包括它的 OpenGL 上下文,但不保证一定会这样做。

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

所以我建议不要 keep/use static android 中的资源,例如AssetManager, Texture, BitmapFont.....

如果您仍然决定使用静力学,那么请确保充分了解它们的生命周期。