【发布时间】:2015-02-11 18:36:34
【问题描述】:
我有一个GameScreen,在关卡结束后,当用户点击重新启动按钮时,我将屏幕设置回GameScreen,作为重新启动。我这样做this.setScreen(new GameScreen(game));,在我执行那行代码之前,我处理屏幕本身,屏幕中使用的所有纹理,字体文件等等,除了 box2D 之外的所有内容(世界因为处理它会给我本机错误并使游戏崩溃)。但是即使我在设置屏幕游戏之前处置资产,在 15-20 重新启动后仍然会崩溃。
我通过打印 JavaHeap 分析了内存使用情况,发现内存使用量在每次重启时都会增加,直到某个点然后又回到低点,如下所示:
- Restart1: 10MB
- Restart2: 13MB
- Restart3: 15MB
- Restart4: 10MB
- Restart5: 11MB
- Restart6: 14MB
- Restart7: 9MB
我已阅读有关内存使用情况的信息,发现这种行为是正常的。但是我的游戏在几次重启后仍然崩溃,甚至没有给出错误消息。
这可能是什么原因造成的?
编辑:我在 ZTE Blade 上测试了游戏,发现每次重置游戏都会变慢,但在大约 15-20 次重置后仍然崩溃。
【问题讨论】: