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

时间:2012-07-23 14:55:11

标签: javascript-events windows-8 microsoft-metro

Win8 Metro为进程何时进入激活状态和暂停状态提供回调,但是当应用程序进入前台或进入后台时该怎么办?应用程序进入后台后,该过程不一定会暂停,同样,它可能会在上次启动时仍处于激活状态时进入前台。

JAvascript中是否有任何事件可用于在应用程序的前景化或后台处理上执行代码?

感谢您的时间!

3 个答案:

答案 0 :(得分:1)

当应用程序被置于后台但尚未暂停时,您可以在文档对象上使用“visibilitychanged”事件和“hidden”属性: http://msdn.microsoft.com/en-us/library/ie/hh773167(v=vs.85).aspx

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

如果您的应用程序被暂停,您将获得相应的暂停事件。

答案 1 :(得分:0)

根据我的理解,一旦地铁应用程序完全失去焦点(完全脱离屏幕),操作系统会给予15秒(我认为)运行其OnSuspend代码,然后停止并暂停。每次整个应用程序失去完全焦点时都会发生这种情况,当它再次获得焦点时会发生相反的情况(用户切换回它)。

您要在这些前景和后台事件中运行的代码应放在Suspension和Reactivation事件处理程序中

答案 2 :(得分:0)

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

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

查看这些资源以获取更多信息: *不同的应用程序执行状态:http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.activation.applicationexecutionstate.aspx *有关此问题的指导原则:http://msdn.microsoft.com/en-us/library/windows/apps/hh465088.aspx