WinJS应用程序在暂停时仍在运行

时间:2012-08-11 06:23:30

标签: windows-8 winjs

我有一个WinJS应用程序,其中包含一个计时器对象。我从msdn文档中读到,在用户导航到另一个应用程序5秒后我的应用程序将被暂停,之后我的应用程序将停止运行。

但是,在暂停状态下测试应用程序时,我注意到计时器一直在运行。我试过通过

暂停申请
  1. 点击VS2012调试窗口中的“暂停”按钮和
  2. 手动运行我的应用程序,导航到另一个应用程序并等待一段时间(10分钟)将其暂停。
  3. 但在这两种情况下,计时器都会继续运行。我预计它会在暂停时停止并在恢复时同时恢复,但它会正确显示已用时间。

    如果有人能解释这种行为我会很感激。我正在运行Windows 8 Release Preview。

    感谢。

1 个答案:

答案 0 :(得分:6)

暂停应用后,所有计时器都会被暂停。我刚用这段代码验证了它:

function timerFired() {
    var container = document.getElementById("timeroutput");
    var content = document.createElement("div");
    content.textContent = Date.now();

    container.appendChild(content);
}

setInterval(timerFired, 1000);

当应用程序进入后台并暂停时(暂停前大约需要15秒),文本将被停止附加。

请注意:

  • 在调试器下,应用程序会自动暂停,您必须单击暂停按钮(正如您所说的那样)。
  • 如果您在暂停后激活该应用程序(例如,单击该应用程序或切换回该应用程序),则计时器将立即执行,如果其暂停的时间更长而不是计时器间隔
  • 如果您正确播放背景音频,那么您的计时器仍会继续运行,因为您在播放背景音频时会被暂停