LibGdx - 在 Sprite 中处理 Sprite 或 Texture 是强制性的吗?

LibGdx - Dispose Sprite or Texture in Sprite is mandatory?

我正在用我的资源中的纹理加载我的精灵,就像我在下面提到的那样。

gameBoardSprite = new Sprite( new Texture(Gdx.files.internal("data/gameboard.png")));  

我的代码中是否需要配置以下内容?是强制性的吗?

gameBoardSprite.getTexture().dispose();

从技术上讲,您不必处理它,但不处理它会影响您的性能。

在 android Dalvik 将启动并决定是否释放您的一些内存。从而造成丢帧。

在您的桌面上,可能会发生内存泄漏。

阅读here了解更多信息

是的,在您失去对它的引用之前必须对任何 Disposable 对象调用 dispose,否则会发生内存泄漏。 VM 不会自动处理 OpenGL 对象(如纹理)使用的本机内存,因此您必须在删除引用之前手动执行此操作并让 GC 声明对象本身声明的 "non-native" 内存。

如果您要在应用程序的整个生命周期中使用纹理,您可能不打算处理它,但在 Android 上,您仍然需要在 Gamedispose 方法,因为在某些情况下 Android 会关闭您的 Activity 但不会关闭整个应用程序,因此当用户重新打开您的游戏时,所有以前的纹理都会泄露。