首页 > 代码库 > quick-cocos2d-x endToLua 退出会卡死

quick-cocos2d-x endToLua 退出会卡死

问题:

在做马上赚钱时,会出现退出卡死,然后清理程序,再进入还是卡死界面的情况,百思不得其解,昨天在做push的时候,突然发现,在android里面弹出一个退出对话框,点击确定退出,这时候调用endtolua时,有时也会切入前台。PSNotificationCenter.addObserver(nil, "APP_ENTER_FOREGROUND", function()   do something end.而且这两个操作顺序是随机的,而我们在切入前台时做了很多操作,所以导致有时候退出时,还在处理那些操作,所以界面卡死。

为什么会出现这种情况:

在android里,弹出一个对话框,会调用切入APP_ENTER_BACKGROUND,当关闭对话框,会进入前台。如果先进入前台,再退出,是没问题的,但如果先退出,再进入前台,那么这时如果前台操作里还有其他操作,那很容易就卡死了

解决办法:

延时endtolua操作,虽然延时不太靠谱,但能解决大部分问题的。

<span style="font-size:18px;">function game.exit()
    schedule.performWithDelayGlobal(function()   
    --退出按钮
        CCDirector:sharedDirector():endToLua()
    end, 0.2)
end</span>

有更好的办法,请回复交流哦~