h5开发的app怎么不能保持后台运行

HTML5开发的应用程序在移动设备上普遍存在后台运行问题。这是因为HTML5应用程序在移动设备上实际上只是嵌入在某个浏览器中的网页。因此,这些应用程序就与其托管浏览器处于同一进程中。移动设备的操作系统通常采用一种叫做"Sandbox"的技术,即应用程序不能跨越边界进入其他应用程序或操作系统内核。这导致HTML5应用程序不能直接在后台中运行。下面详细介绍其中的原理。

当前移动设备的操作系统采用了单个进程模型,也就是说,所有的应用程序共享一个进程,也就是说,在同一时间内只有一个应用程序运行。而HTML5应用程序是通过Web浏览器来运行的。在这种情况下,HTML5应用程序显示在Web浏览器的一个选项卡中。但是,当我们选择切换到其他应用程序时,Web浏览器接收到了两个消息。

第一个消息是失去焦点的消息,告诉Web浏览器页面已经不是当前用户正在浏览的页面。

第二个消息是停止运行的消息,告诉Web浏览器停止运行下面的JavaScript代码。这是为了保持操作系统的安全性。

应用程序会在后台运行,例如操作系统会一直给它分配CPU时钟周期直到它完成所需的任务。但是,HTML5应用程序在后台运行的时间非常有限,仅限于几秒钟左右的时间。

如果HTML5应用程序需要在后台长时间运行,则需要使用原生移动应用程序和HTML5应用程序混合开发的方法。

总的来说,HTML5应用程序后台运行的难度主要是因为应用程序与浏览器处于同一个进程,且浏览器默认的就是前台进程。因此,如果想要实现HTML5应用程序在后台运行需要借助一些外部资源,例如后端服务器,消息推送等技术手段的支持。