[]H5小游戏,IOS平台退到后台,长时间返回画面卡顿或者直接卡死!

laya做的H5小游戏,以webview嵌入ios的app中,游戏过程中退到后台,长时间返回后,要么画面卡顿,要么直接卡死,无法继续游戏,请教各位大神!!
已邀请:

w1114367261

赞同来自:

这是你项目自身的逻辑问题哦,是否对后台运行没有做处理那?或者是长时间操作没有进行处理,等原因。

杨潇

赞同来自:

请看这个定义:
* @param   jumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次
再看laya.core.js中Timer._update()方法的这段代码:
                    if (handler.repeat){
                        if (!handler.jumpFrame){
                            handler.exeTime+=handler.delay;
                            handler.run(false);
                            if (t > handler.exeTime){
                                handler.exeTime+=Math.ceil((t-handler.exeTime)/ handler.delay)*handler.delay;
                            }
                        }else {
                            while (t >=handler.exeTime){
                                handler.exeTime+=handler.delay;
                                handler.run(false);
                            }
                        }
                    }else {
                        handler.run(true);
                    }
 
看出问题来了吗?Timer._update中对jumpFrame的使用和定义刚好是相反的!
先不吐槽这个。
真正的问题在于,对于不跳帧的timer.loop(),那么它将在切后台再切回来后被执行很多很多...次。这就是造成切后台返回前台卡顿的原因,而且,切后台时间越长,卡顿也就越久。
解决办法?限制不跳帧执行的最大次数(比如5次)。

要回复问题请先

商务合作
商务合作