0

MainWindowオブジェクトの設定を「再初期化」することに問題があります。OnNavigatedToもサスペンド後に呼び出すと思い、MainWindowに次のようなコードがあります。protectedoverride void OnNavigatedTo(NavigationEventArgs e){object.value = initValue; }

しかし、一時停止した後は呼び出されませんでした。では、一時停止後にこれをどのように行うことができますか?

4

1 に答える 1

1

VS2012 に付属の既定のテンプレートを使用すると、App.xaml.cs ファイルに次のコードが表示されます。

    protected override async void OnLaunched(LaunchActivatedEventArgs args)
    {
        Frame rootFrame = Window.Current.Content as Frame;

        // ... took out some code here

            if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
            {
                // Restore the saved session state only when appropriate
                try
                {
                    await SuspensionManager.RestoreAsync();
                }
                catch (SuspensionManagerException)
                {
                    //Something went wrong restoring state.
                    //Assume there is no state and continue
                }
            }

        // ... took out some more code here    

        Window.Current.Activate();
    }

ApplicationExecutionState の可能な値は次のとおりです。

public enum ApplicationExecutionState
{
    // Summary:
    //     The app is not running.
    NotRunning = 0,
    //
    // Summary:
    //     The app is running.
    Running = 1,
    //
    // Summary:
    //     The app is suspended.
    Suspended = 2,
    //
    // Summary:
    //     The app was terminated after being suspended.
    Terminated = 3,
    //
    // Summary:
    //     The app was closed by the user.
    ClosedByUser = 4,
}

したがって、別のifステートメントを追加するだけです

if (args.PreviousExecutionState == ApplicationExecutionState.Suspended)

サスペンド状態の後に実行したいコードを実行します。

ページ自体の以前の状態を復元するには、各ページの LayoutAwarePage 基本クラスで定義されている LoadState メソッドと SaveState メソッドを使用します (または独自の状態管理を実装します)。VS2012 に付属のテンプレート (例: Grid アプリケーション) は、状態管理のためにこれらすべてのトリックを既に使用しており、開始するのに適した方法です。

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
protected override void SaveState(Dictionary<String, Object> pageState)
于 2012-08-17T08:36:18.657 に答える