Android上下文开关上的javascript设置超时

Android上下文开关上的javascript设置超时,javascript,android,html,mobile,Javascript,Android,Html,Mobile,在javasscript中,我反复使用setTimeout重新绘制HTML5画布 function doDraw() { drawOnCanvas(); setTimeout(doDraw, 20); } 我在Android浏览器上遇到问题。(可能也是在iOS上,我还没有测试过…) 1.一切正常 2.我按下安卓“主页”按钮,然后做其他事情 3.我回到浏览器。 4. 问题:未计划再次执行setTimeout。 因此,我的屏幕刷新循环停止,游戏“死亡” 编辑:现在,我继续调查。事实证

在javasscript中,我反复使用setTimeout重新绘制HTML5画布

function doDraw() {
   drawOnCanvas();
   setTimeout(doDraw, 20);
 }
我在Android浏览器上遇到问题。(可能也是在iOS上,我还没有测试过…) 1.一切正常 2.我按下安卓“主页”按钮,然后做其他事情 3.我回到浏览器。 4. 问题:未计划再次执行setTimeout。

因此,我的屏幕刷新循环停止,游戏“死亡”


编辑:现在,我继续调查。事实证明setTimeout仍然有效。真正的问题是画布从屏幕上消失了,我画的东西什么也看不出来。画布上一片空白

对于渲染循环,建议始终使用
requestAnimationFrame
,因为它确切地知道何时安排回调,即完成浏览器重新绘制的最佳时间段。 通过使用
setTimeout
您将跳过帧,这将导致严重的Jankey动画

就问题而言,您可以在加载文档时重新启动循环

window.onload=函数(){doDraw();}


我希望能奏效。

现在,我继续调查。事实证明setTimeout仍然有效。真正的问题是画布从屏幕上消失了,我画的东西什么也看不出来。画布上一片空白。我现在会设法解决这个问题。(与此无关,requestAnimationFrame无法工作)


我结束这个问题是因为我问错了问题

不够好。。。。1.requestAnimationFrame在桌面上运行得很好,但是android股票浏览器在我的JellyBean手机上不支持它。2.仅切换回时是否会再次调用window.onload?我认为只有当页面第一次加载时才会调用它。您可以使用“webkitvisibilitychange”文档。addEventListener(“webkitvisibilitychange”,handler);现在,我继续调查。事实证明setTimeout仍然有效。真正的问题是画布从屏幕上消失了,我画的东西什么也看不出来。画布上一片空白。我现在会设法解决这个问题。(与此无关,requestAnimationFrame无法工作)