3

私のアプリケーションは、Web サービスから取得したデータを表示します。私のアプリケーションが中断モードになり、長期間中断されたままになっているとしましょう。その後、このアプリケーションが再開されたら、Web サービスに再度クエリを実行して、アプリケーションに最新のデータを表示したいと考えています。問題は、このシナリオを処理するのに適した場所がわからないことです。以下のコードの簡略化されたバージョンがあります。以下の例では、Suspend and 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 に答える