Android - 如何正确暂停OpenGL

时间:2012-02-18 13:43:53

标签: java android optimization opengl-es

暂停我的申请时遇到了一些问题。我为游戏逻辑使用单独的线程。所以我暂停我的线程,但我不知道如何正确暂停和重新创建OpenGL视图。这是我的代码。它工作,但我认为可能有内存泄漏。显示为GLSurfaceView,Renderer为GLSurfaceView.Renderer。

@Override
public void onPause()
{
    super.onPause();
    display = null;
    game.pause();
    Game.texturesLoaded = false;
}

@Override
public void onResume()
{
    // TODO normal pause
    super.onResume();
    display = new Display(this);
    display.setRenderer(renderer);
    setContentView(display);
    game.resume();
}

2 个答案:

答案 0 :(得分:1)

重新创建任何与OpenGL相关的内容应该通过onSurfaceCreated()完成。

答案 1 :(得分:0)

只需拨打display.onPause()display.onResume()即可。 请参阅http://developer.android.com/reference/android/opengl/GLSurfaceView.html

的活动生命周期部分