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前执行。

发表评论

邮箱地址不会被公开。 必填项已用*标注