1

我的代码的一部分如下所示:

public void goToMainMenu() {
        Assets.LoadMenuTexutres();
        Assets.unloadGameTexutres();
        game.setScreen(new MainMenuScreen(game));   
}

它可以工作,但是当我调用该方法时,我得到了大约 0.5 秒的延迟(因为在 OpenGL 中加载纹理很重),然后我进入 MainMenuScreen,但所有的动画在 0.3 秒左右变得不稳定。为什么我在加载资产/纹理后会出现这种断断续续的延迟,我该如何防止它?

干杯!

4

2 回答 2

0

我的猜测是您的延误是因为:

  1. 所有纹理的加载
  2. 所有纹理的卸载,然后让垃圾收集器在现在空闲的位图对象上运行

为了避免这种延迟破坏用户体验,我建议您将加载和卸载移动到AsyncTask中,并显示一个ProgressDialog说“正在加载...”或其他内容。

于 2012-08-25T13:58:27.397 回答
0

您可以使用内置AssetManager

于 2012-08-25T19:37:56.653 回答