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引用之前完成,否则本机内存将泄漏。