在Managing your assets中说以下编码会导致问题
public static AssetManager assets = new AssetManager();
但我不明白上面的代码和下一个代码之间的区别:
public class AssetSingleton {
private static final AssetSingleton instance = new AssetSingleton();
private final AssetManager assets = new Assets();
public AssetManager getAssets(){
return assets;
}
}
...........................................
AssetManager manager = AssetSingleton.instance.getAssets();
那么为什么第一段代码在暂停/恢复Android应用程序时不安全? 我必须以何种方式存储AssetManager实例? LibGDX文档中没有示例。 在书#34;学习LibGDX游戏开发第2版"使用了包含assetmanager实例的单例,并且在恢复/暂停时,这个单例加载/卸载资源。
也在Managing your assets中说:
如果您没有按照最后一个片段中的说明设置AssetManager,那么通常的托管纹理机制会启动,因此您不必担心任何事情。
我是否理解正确:如果我没有单身,我不使用AssetManager的静态实例 - 资产将由LibGDX自动加载和卸载。如果是这样 - 怎么样?差异是什么?
答案 0 :(得分:0)
对资产进行静态引用尤其糟糕,因为静态的生命周期可能与创建资源的上下文的生命周期不同。请查看此answer以获取详细信息。 / p>
如果你想在恢复游戏时显示载入画面,你可以使用
Texture.setAssetManager(manager);
如果你没有按照上面的说法设置AssetManager,那么 通常的托管纹理机制会启动,所以你不必这样做 担心任何事情。