【发布时间】:2024-01-11 17:11:01
【问题描述】:
假设我有一个由资产管理器加载到内存中的带有Skin 的屏幕 A:
private Skin skin;
...
skin = (Skin)MyGame.ResourceManager.getAsset(AssetEnum.UISkin);
//UISkin("Menu/UISkin.json", Skin.class),
我需要加载同样引用AssetEnum.UISkin 的下一个屏幕B。简单的方法是
- 配置屏幕A
- 卸载屏幕A的资源
- 加载屏幕B的资源
- 初始化屏幕 B
但我想在屏幕 B 的资源仍在加载时在屏幕 A 上显示一些加载轮。有了这个扩展步骤看起来像
- 加载屏幕B的资源
- 初始化并设置屏幕 B
- 配置屏幕A
- 卸载屏幕A的资源
问题是当我在第三步调用 dispose 时,skin.dispose() 删除了我当前也需要的前一个屏幕的纹理。而这种情况每次在“加载屏幕B的资源”之后“配置屏幕A”时都会出现。有没有人有什么建议?请帮忙
【问题讨论】:
标签: java android memory-management libgdx