Android LibGdx-必须在Sprite中处理Sprite或纹理?

Android LibGdx-必须在Sprite中处理Sprite或纹理?,android,libgdx,Android,Libgdx,我正在从我的资源中加载带有纹理的精灵,就像我在下面提到的一样 gameBoardSprite = new Sprite( new Texture(Gdx.files.internal("data/gameboard.png"))); 我的代码中是否需要处理以下内容?它是强制性的吗 gameBoardSprite.getTexture().dispose(); 从技术上讲,你不需要处理它,但不处理它会影响你的表现 安卓系统将启动,并决定是否释放一些内存。从而导致帧丢失 在桌面上,可能会发生

我正在从我的资源中加载带有纹理的精灵,就像我在下面提到的一样

gameBoardSprite = new Sprite( new Texture(Gdx.files.internal("data/gameboard.png")));  
我的代码中是否需要处理以下内容?它是强制性的吗

gameBoardSprite.getTexture().dispose();

从技术上讲,你不需要处理它,但不处理它会影响你的表现

安卓系统将启动,并决定是否释放一些内存。从而导致帧丢失

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


阅读了解更多信息

是,在丢失对任何
一次性
对象的引用之前,必须对其调用
dispose
,否则将发生内存泄漏。VM不会自动处理OpenGL对象(如纹理)使用的本机内存,因此您必须在删除引用之前手动处理,并让GC声明对象本身声明的“非本机”内存


如果你打算在应用程序的生命周期中使用纹理,你可能永远都不打算处理它,但在Android上,你仍然必须使用
游戏
处理
方法,因为在某些情况下,Android会关闭你的活动,但不会关闭整个应用程序,因此当用户重新打开你的游戏时,所有以前的纹理都会泄漏

我可能遗漏了一些东西,但我想不出任何情况下性能会受到影响。只要您持有对它的引用,GC就不会收集它。调用dispose不会影响是否会发生这种情况。dispose方法用于清理本机内存,必须在删除Java引用之前完成,否则本机内存将泄漏。