Libgdx多线程与渲染线程
http://www.leestorm.com/post/115.html
大部分平台都会有主线程与UI线程同步的问题,Libgdx与androidUI线程进行交互使用Android的Message机制即可,比如弹出对话框,通知等。
但 Libgdx的大部分逻辑都依赖渲染线程,比如资源加载,绘制,舞台创建等。当一些情况下在其它线程要进行渲染线程才能完成的工作时,直接在其它线程进行 操作,会抛出java.lang.IllegalArgumentException: Error compiling shader错误。比如你的安卓Libgdx游戏要接入支付宝SDK,支付宝SDK支付回调是单独的线程,当你要实现类似“支付完成切换Screen”这 种操作时,就需要用到Gdx.app.postRunnable,如:
Gdx.app.postRunnable(new Runnable()
{
@Override
public void run()
{
GameMain.instance.setCurScreen(new ModSeletScreen());
dispose();
}
});
Runnable里面的语句将会在渲染线程中,并在下一次render前执行。