JavaScript 设置超时在 Android 上下文切换上

javascript settimeout on Android context switch

本文关键字:上下文切换 Android 设置 超时 JavaScript      更新时间:2023-09-26

在javasscript中,我反复使用setTimeout来重绘HTML5画布。

function doDraw() {
   drawOnCanvas();
   setTimeout(doDraw, 20);
 }

我在安卓浏览器上遇到问题。(也许在iOS上,我还没有测试过...:1.一切正常2.我按下安卓"主页"按钮并做其他事情3.我回到浏览器。4. 问题:设置超时未计划再次执行。

所以我的屏幕刷新循环停止了,游戏"死了"。

编辑:现在,我继续调查。事实证明,设置超时仍然有效。真正的问题是画布从屏幕上消失了,我画的任何东西都没有显示出来。画布只是空白的。

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

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

window.onload = function() {doDraw();}

我希望这有效.

现在,我继续调查。事实证明,设置超时仍然有效。真正的问题是画布从屏幕上消失了,我画的任何东西都没有显示出来。画布只是空白的。我现在将尝试解决这个问题。(请求动画帧无论如何都不起作用)。

我正在关闭这个问题,因为我问了错误的问题