处理申请退出

时间:2012-10-01 04:19:33

标签: windows-8 winjs

当用户使用 Alt-F4 或向下滑动手势退出应用程序时,我想运行一些清理代码(例如取消注册预定通知)。有没有办法在WinJS中处理应用程序退出?我已经阅读了 WinJS.Application 对象的文档,但没有看到任何处理用户出口的方法。

1 个答案:

答案 0 :(得分:5)

There is no special event表示应用正在关闭:

  

没有特殊事件表明用户已关闭应用。在用户关闭应用程序后,该应用程序将暂停并终止,并在大约10秒内进入 NotRunning 状态。如果某个应用已为暂停|注册了事件处理程序暂停事件,在应用暂停时调用。您可以使用此事件处理程序将相关的应用程序和用户数据保存到持久存储。

所以你需要处理暂停/恢复。处理暂停的血腥细节是here,但这里有一个摘要:

  1. 注册checkpoint事件,告知您的应用已被暂停。
  2. 保存您在该事件的事件处理程序中保存所需的任何数据。
  3. 同时在事件处理程序中释放资源,暂停通知等。
  4. 在恢复时,您可以使用ApplicationExecutionState枚举检查用户是否关闭了该应用。这可能与您相关,也可能不相关,因为似乎没有办法区分为什么checkpoint事件被触发,您唯一的选择是将您的状态保存在事件处理程序中,无论它发生的原因。

    还有其他暂停/恢复准则here,您可能会发现this sample app有帮助。