ここには別の概念が含まれています。
-最初の機能は、Windows Phone 8 の新機能である Fast App resume です。これを有効にすると、アプリケーション タイルを押したときに、アプリを再起動せずに同じインスタンスを保持できます (デフォルトでは、アプリを強制終了するだけです)。アプリがまったく開かれていない場合とまったく同じように、新しいインスタンスを再作成するだけです)。詳細については、こちらを参照してください。
- 2 つ目のコンセプトは、Fast App Switch と Tombstoning です。アプリケーションのライフサイクルの詳細については、こちらを参照してください。基本的に、Windows ボタンを押すか、別のアプリに移動すると、アプリは休止状態になります。この状態では、アプリケーションは実行されていませんが、まだメモリ内にあります。すべてがまだメモリ内にあるため、戻ると、すべてが中断されたとおりになります。高速アプリ切り替えの場合に対処する主なケースは、アプリが非アクティブ化されるとすべてのネットワーク接続が切断されるという事実です。そのため、戻ったときに Web エラー メッセージ ダイアログが表示されず、やり直す必要があります。失敗した Web リクエスト。
アプリケーションの 2 番目に考えられる状態は、アプリが休眠状態になった後、いくつかのアプリを開き、デバイスに十分なメモリがない場合、アプリを廃棄することを選択することです。その状態では、アプリはメモリから削除されるため、保存していないものはすべて失われます。アプリに戻ると、ユーザーが以前にいたページに戻り、再作成されます。
つまり、アプリが非アクティブになる前にこのケースを処理するには、次のものが必要です。
- ナビゲーション パラメータで渡していない可能性のあるコンテキスト固有のデータを保存します。
- ユーザーが現在行っていることを保存する可能性があります (たとえば、現在長いテキストを入力している場合、ユーザーが最初から再入力する必要がないように、保存する方がよい場合があります)。
- 現在のスクロール位置や選択したアイテムのようなものを保存するとプラスになる可能性があります
また、アプリが再開したときに、必要なすべての情報を再クエリするようにする必要があります。メイン ページの OnNavigatedTo に (Web サーバーなどから) データをロードし、再クエリせずに詳細ページでデータを再利用すると、壊れる可能性があります。詳細ページにいる場合は、スタートボタンを押してから、他の操作を行い、アプリの tombstonne を実行します。アプリに戻ると、データは利用できなくなります (メモリが「クリア」され、メイン ページの onNavigatedTo が実行されているため)。詳細ページに直接戻るため、呼び出されません)。
ページの状態とアプリケーションの状態を使用して、廃棄のケースを適切に処理するために必要な情報を保存できます。基本的に、アプリが非アクティブ化されたときに、シリアライズされるオブジェクトを追加できるディクショナリがあります (保存しようとするオブジェクトがシリアライズ可能であることを確認する必要があります)。
Tombtonning ケースを簡単にテストするには、プロジェクトのプロパティで、[デバッグ] タブで [デバッグ中に非アクティブ化時に廃棄] チェック ボックスをオンにします。このように、デバッグしてWindowsボタンを押すか、別のアプリに移動すると、常にアプリが廃棄されます。それが本当に tombstonning であることを確認するために、戻ったときにアプリが数秒間再開画面を表示するはずです (tombstonning の場合は、ほぼ瞬時です。