3

我的应用程序显示从 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");
    };
4

2 回答 2

1

假设您对变量“app”的定义是示例应用程序的标准:

    var app = WinJS.Application;

那么您不能将该变量用于“恢复”或“暂停”事件,根据MS 文档,内容如下:

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

因此,正如该文档所说,您需要使用:

Windows.UI.WebUI.WebUIApplication.addEventListener("suspending", suspending, false);
Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", resuming, false);
于 2014-06-12T00:08:03.807 回答
0
Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", function onresuming()
{
    Windows.UI.Popups.MessageDialog('hi i a resuming').showAsync();
});

请参阅此处的msdn 页面。可惜app.addEventListner('resuming', function() {})不是扔。

msdn 页面中的应用程序恢复部分也可能很有用,它讨论了延迟恢复的相同场景。

于 2013-04-05T08:47:27.707 回答