0

現在、ユーザーが ListPicker を使用して特定の値を選択し、パブリック文字列変数に保存するページがいくつかあるアプリがあります。ユーザーが最後のページに到達すると、いくつかのテキストブロック コントロールが文字列変数を読み取り、文字列を表示します。これに加えて、ユーザーがこの最後のページに到達したときにカウントを開始するタイマーが表示されます。

これで、ユーザーがホーム ボタンを押してアプリを離れ、アプリ スイッチャーを使用してアプリに戻ると、最後のページが滞りなく表示され、すべてのテキスト ブロックに変数が表示され、タイマーは停止していません。ただし、ユーザーがホーム画面に切り替えるのではなく、ホーム画面からアプリを再起動すると、すべての変数が失われ、アプリは最初のページから開始されます。

私がやりたいことは、文字列変数とタイマーを保存し、!= null の場合、起動時にアプリに変数を読み込ませることです。それらが存在し、アプリがそれらをロードできる場合は、最後のページに移動して表示します。それ以外の場合、ロードする変数がない場合は、通常の操作を続行してください。

どうすればこれを行うことができますか?分離ストレージと保存状態について読んだことがありますが、正直なところ、何も達成できておらず、本当に頭がおかしくなっています。どんな助けでも大歓迎です。

4

1 に答える 1

0

高速アプリの再開を実装する必要があります。まず、WMAppManifest.xml で ActivationPolicy="Resume" を設定する必要があります。

次に、「App」クラスの App.xaml.cs に移動します。private bool reset RootFrame を初期化する InitializePhoneApplication のメソッドが必要です。これを追加:

RootFrame.Navigating += RootFrame_Navigating;
RootFrame.Navigated += RootFrame_Navigated;

次に、これらのメソッドを追加できます。

void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
        if (reset && e.IsCancelable && e.Uri.OriginalString == "/MainPage.xaml")
    {
        e.Cancel = true;
        reset = false;
    }
}

void RootFrame_Navigated(object sender, NavigationEventArgs e)
{
    reset = e.NavigationMode == NavigationMode.Reset;
}

これを適切に実装すると、アプリは最後に表示していたページから再開するはずです。

于 2013-03-17T03:50:05.617 に答える