我的代码的一部分如下所示:
public void goToMainMenu() {
Assets.LoadMenuTexutres();
Assets.unloadGameTexutres();
game.setScreen(new MainMenuScreen(game));
}
它可以工作,但当我调用该方法时,我得到大约0.5秒的延迟(因为在opengl中加载纹理很重),然后我到达主菜单屏幕,但所有的动画都会在大约0.3秒的时间内不稳定。为什么在加载资源/纹理后会出现这种波动性延迟?如何防止这种情况?
干杯!
2条答案
按热度按时间q35jwt9p1#
我猜你的延误是因为:
所有纹理的加载
所有纹理的卸载,然后让垃圾收集器在现在空闲的位图对象上运行
为了避免这种延迟破坏用户体验,我建议您将加载和卸载移到asynctask中,并显示一个progressdialog,说“正在加载…”或其他什么。
x6yk4ghg2#
您可以使用内置assetmanager