Android单例和静态对象的生命周期

时间:2014-06-11 13:00:25

标签: java android libgdx

我正在为Android的libGDX游戏工作,我在管理资产方面遇到了问题。我有一个单独模式的类。我使用静态最终变量来访问此实例,我还使用AssetManager来管理我的资产。此管理器在构造函数中创建并在出口处处理。

我的问题是,当我关闭游戏并再次启动它时,类实例是相同的(没有删除也没有重新创建)并且AssetManager仍然存在但处理掉了,所以当我尝试加载我的时候资产全部崩溃。

为什么不删除静态实例?垃圾收集器需要多长时间?我可以手动删除吗?有什么方法可以解决这个问题吗?我可以使用AssetManager#clear代替AssetManager#dispose,但我的类存储会引用游戏使用的所有资产和对象。

1 个答案:

答案 0 :(得分:2)

我认为,你可能不会关闭游戏,它可能会转移到背景中,否则,一旦到达前台或反映任何发生的事情,它可能被称为onResume()或{{1} }。onStart()它没有被称为相应的Activity上下文,因此您需要在每个onResume()getinstance()方法中调用onResume()

像这样创建你的实例

onStart()