如何处理长时间暂停后应用程序恢复的情况(未终止)

时间:2013-04-02 23:25:41

标签: javascript windows-8 winjs

我的应用程序显示它从Web服务检索的数据。假设我的应用程序处于暂停模式并且长时间保持暂停状态。之后,当此应用程序恢复时,我想再次查询Web服务并在应用程序中显示更多最新数据。问题是我不确定什么是处理这种情况的好地方。我在下面简化了代码版本。在下面的示例中,当我使用Suspend和Terminate选项时,我在控制台窗口中获得恢复,但是当我只执行Suspend并且在Resume之后,似乎没有调用任何函数。我可能做错了什么想法?

app.addEventListener("resuming", function (vt) {
        console.log("resuming");
    });

    app.addEventListener("activated", function (args) {
        console.log("activated");
        if (args.detail.kind === activation.ActivationKind.launch) {
            if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                console.log("new launch");
            } else {
                console.log("resume");
            }
        }
    });

    app.oncheckpoint = function (args) {
        console.log("suspended");
    };

2 个答案:

答案 0 :(得分:1)

假设你定义变量" app"是示例应用程序的标准:

    var app = WinJS.Application;

那么你就不能将这个变量用于"恢复"或"暂停"事件,每MS documentation读取:

  

注意某些Windows应用商店应用事件的监听器,例如"暂停"和"恢复",无法添加此功能。您必须使用Windows.UI.WebUI.WebUIApplication.addEventListener。

相反,正如该文档所说,您需要使用:

Windows.UI.WebUI.WebUIApplication.addEventListener("suspending", suspending, false);
Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", resuming, false);

答案 1 :(得分:0)

Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", function onresuming()
{
    Windows.UI.Popups.MessageDialog('hi i a resuming').showAsync();
});

参考msdn page here。不幸的是app.addEventListner('resuming', function() {})并没有投掷。

this msdn页面中的

应用程序恢复部分也可能有用,它可以讨论晚期恢复的相同情况。