如何在Javascript Win8 Metro应用程序中捕获前台和后台事件
How to trap foreground and background events in a Javascript Win8 Metro App
Win8 Metro在进程进入激活和挂起状态时提供回调,但当应用程序进入前台或进入后台时呢?应用程序一进入后台,这个过程就不一定会暂停,同样,它可能会在上一次发布时仍处于激活状态时进入前台。
Javascript中是否有任何事件可用于在应用程序的前台或后台执行代码?
当应用程序被置于后台但尚未挂起时,您可以在文档对象上使用"visibilitychanged"事件和"hidden"属性:http://msdn.microsoft.com/en-us/library/ie/hh773167(v=vs.85).aspx
当你的应用程序不再可见时(例如,用户点击启动按钮,或滑动到另一个应用程序),这些程序就会被触发。
如果您的应用程序随后被挂起,则也将获得相应的挂起事件。
根据我的理解,一旦metro应用程序完全失去焦点(完全脱离屏幕),操作系统就会给它15秒的时间运行其OnSuspend代码,然后停止并挂起。每当整个应用程序完全失去焦点时就会发生这种情况,而当它再次获得焦点时(用户切换回它)则会发生相反的情况。
要在这些前台和后台事件中运行的代码应该放在Suspension和Reactivation事件处理程序中
在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
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- 如何在Javascript Win8 Metro应用程序中捕获前台和后台事件
- 基于鼠标位置的滚动将点击事件保留在前台