如何在Javascript Win8 Metro应用程序中捕获前台和后台事件

如何在Javascript Win8 Metro应用程序中捕获前台和后台事件,javascript,windows-8,dom-events,microsoft-metro,Javascript,Windows 8,Dom Events,Microsoft Metro,Win8 Metro在进程进入激活和挂起状态时提供回调,但当应用进入前台或后台时又如何?当应用程序进入后台时,这个过程不一定会暂停,同样地,它也可能会进入前台,而在上一次发布时仍然处于激活状态 Javascript中是否有任何事件可用于在应用程序前景化或背景化时执行代码?据我所知,一旦metro应用程序完全失去焦点(完全脱离屏幕),操作系统会给它15秒(我认为)时间来运行其OnSuspend代码,然后停止和挂起。每次整个应用程序失去完全焦点时都会发生这种情况,而当它再次获得焦点时则会发生相反的情

Win8 Metro在进程进入激活和挂起状态时提供回调,但当应用进入前台或后台时又如何?当应用程序进入后台时,这个过程不一定会暂停,同样地,它也可能会进入前台,而在上一次发布时仍然处于激活状态


Javascript中是否有任何事件可用于在应用程序前景化或背景化时执行代码?

据我所知,一旦metro应用程序完全失去焦点(完全脱离屏幕),操作系统会给它15秒(我认为)时间来运行其OnSuspend代码,然后停止和挂起。每次整个应用程序失去完全焦点时都会发生这种情况,而当它再次获得焦点时则会发生相反的情况(用户切换回它)


在这些前台和后台事件中运行的代码应该放在暂停和重新激活事件处理程序中

根据我的理解,一旦metro应用程序完全失去焦点(完全脱离屏幕),操作系统就会给它15秒(我想)时间来运行其OnSuspend代码,在停止和暂停之前。每次整个应用程序失去完全焦点时都会发生这种情况,而当它再次获得焦点时则会发生相反的情况(用户切换回它)


要在这些前台和后台事件中运行的代码应该放在挂起和重新激活事件处理程序中。在Metro风格的应用程序中,当用户切换离开应用程序时,应用程序将挂起,当用户切换回应用程序时,应用程序将恢复。Metro风格的应用程序运行全屏且沉浸式,因此“暂停”相当于您所认为的“进入后台”,而恢复相当于进入前台

一旦触发挂起事件(当用户从你的应用程序中滑出时),你的应用程序有5秒钟的时间来存储关闭状态。在挂起模式下,您的主执行线程将挂起,但应用程序仍保留在内存中。用户可能会很快返回到您的应用程序,然后线程将恢复,并且您存储的状态将永远不会被使用。但是,在某些情况下,Windows可能内存太多,需要终止进程。如果您的应用程序已终止,则您可以使用存储的状态将应用程序恢复到下次运行时终止时的状态

查看这些资源了解更多信息: *不同的应用程序执行状态:
*关于这一点的指导原则:

在Metro风格的应用程序中,当用户切换离开应用程序时,应用程序将暂停,当用户切换回应用程序时,应用程序将恢复。Metro风格的应用程序运行全屏且沉浸式,因此“暂停”相当于您所认为的“进入后台”,而恢复相当于进入前台

一旦触发挂起事件(当用户从你的应用程序中滑出时),你的应用程序有5秒钟的时间来存储关闭状态。在挂起模式下,您的主执行线程将挂起,但应用程序仍保留在内存中。用户可能会很快返回到您的应用程序,然后线程将恢复,并且您存储的状态将永远不会被使用。但是,在某些情况下,Windows可能内存太多,需要终止进程。如果您的应用程序已终止,则您可以使用存储的状态将应用程序恢复到下次运行时终止时的状态

查看这些资源了解更多信息: *不同的应用程序执行状态:
*关于这一点的指导原则:

当应用程序被置于后台,但尚未挂起时,您可以在文档对象上使用“visibilitychanged”事件和“hidden”属性:

当你的应用程序不再可见时(例如,用户点击开始按钮,或滑动到另一个应用程序),就会触发这些命令


如果您的应用程序随后被挂起,那么您也将获得相应的挂起事件。

当应用程序被置于后台但尚未挂起时,您可以在文档对象上使用“visibilitychanged”事件和“hidden”属性:

当你的应用程序不再可见时(例如,用户点击开始按钮,或滑动到另一个应用程序),就会触发这些命令

如果您的应用程序随后被挂起,您也将获得相应的挂起事件