【问题标题】:AndEngine game crashes since adding adMobAndEngine 游戏在添加 adMob 后崩溃
【发布时间】:2014-05-02 03:19:07
【问题描述】:

在我的游戏中,有一个地方我会在重新连接儿童之前先分离它们,所以我执行以下操作:

activity.getEngine().runOnUpdateThread(new Runnable(){
            public void run() {
                detachChildren();
            }
        });

但是当它们重新连接时,游戏会崩溃,就好像实体从未分离过一样。这是因为我添加了 admob。我怀疑运行 admob 的线程没有时间更新线程以完成其工作。

我尝试将更新线程优先级设置为最大,如下:

this.getEngine().getEngineOptions().setUpdateThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);

但这没有帮助。 因此我的问题是,如何确保 updateThread 的 runnable 在运行其余代码之前完成其工作?或者,或者,我怎样才能使其优先级高于 adMob?

谢谢。

【问题讨论】:

    标签: android admob andengine


    【解决方案1】:

    我决定这样做......虽然我觉得它不雅,但它有效。

    public void loseAndRestart(){
            if(runnableDone){
                if(livesLost>2){
                    saveHigh();
                    youLooseStartAgainPrompt(0);
                } else if (youLooseScreen){
                    youLooseScreen = false;
                    scoreTally.reset();
                    lifeTally.firstInit();
                } else {
                    scoreTally.reattach();
                    lifeTally.init();
                }
                if(!youLooseScreen){
                    diddly.init();
                    craneEngine.purgeAndInit();
                    torch.init();
                    pipeNDrops.init();
                    lifeLost = false;
                }
                runnableDone = false;
            } else {
                activity.getEngine().runOnUpdateThread(new Runnable(){
                    public void run() {
                        detachChildren();
                        runnableDone = true;
                        loseAndRestart();
                    }
                });
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多