Memory leaks TextureAttribute.createDiffuse是否泄漏内存?

Memory leaks TextureAttribute.createDiffuse是否泄漏内存?,memory-leaks,libgdx,Memory Leaks,Libgdx,我正在使用此代码在材质上设置纹理。在androidstudio的Memory选项卡下,我注意到每次代码运行时内存都会增加。在我看来,内存泄漏或内存管理不好。如何在运行时将纹理反复设置为材质,以便正确管理内存 代码: 问题是每次计时器执行任务时,您都在创建一个新的纹理是可弃置的,因此,不再使用时需要弃置。在上面的代码中,您没有保留对已创建的纹理的引用,因此您无法处理这些纹理。这会造成内存泄漏 解决这一问题的一个方法是使用一个管理器,而不是自己管理资产。本课程旨在减轻您管理资产内存消耗的工作量 另一

我正在使用此代码在材质上设置纹理。在androidstudio的Memory选项卡下,我注意到每次代码运行时内存都会增加。在我看来,内存泄漏或内存管理不好。如何在运行时将纹理反复设置为材质,以便正确管理内存

代码:


问题是每次
计时器执行
任务时,您都在创建一个新的<代码>纹理
是可弃置的
,因此,不再使用时需要弃置。在上面的代码中,您没有保留对已创建的
纹理的引用,因此您无法
处理这些纹理。这会造成内存泄漏

解决这一问题的一个方法是使用一个管理器,而不是自己管理资产。本课程旨在减轻您管理资产内存消耗的工作量

另一种解决方案是保留对已创建的
Texutres
的引用,并确保它们在不需要时被正确地
处理

就我个人而言,我会选择第一种解决方案。一开始它可能很吓人,但一旦掌握了
AssetsManager
,它在管理您的资产方面确实做得很好

Timer.schedule(new Timer.Task() {
                @Override
                public void run() {
                    materials.get(5).set(TextureAttribute.createDiffuse(new Texture("400px/"+mat5+".png")));

                }
            }, delay2);