2

高速切り替えのために本当に何かをする必要がある場合、私は少し混乱しています. メディア要素、カメラ、ソケットを使用していない場合、この「高速切り替え」を無料で利用できるようです。

私はそれをテストする方法がわかりません。私はいくつかのビデオを見ます

  1. Windows アイコン (スタート アイコン) をクリックします。
  2. 戻るボタンを押す

また

  1. 画面が表示されるまで戻るボタンを押し続けます
  2. 他のアプリに移動する
  3. アプリに戻ります。

これらは両方とも再び高速にロードされるように見えますが、if.

  1. アプリをロードする
  2. Windows アイコンをヒット
  3. タイルアプリをクリック

この時点で高速切り替えが発生する必要がありますか、それともアプリの新しいインスタンスが読み込まれ、古いインスタンスが強制終了されますか?

4

4 に答える 4

3

ここには別の概念が含まれています。

-最初の機能は、Windows Phone 8 の新機能である Fast App resume です。これを有効にすると、アプリケーション タイルを押したときに、アプリを再起動せずに同じインスタンスを保持できます (デフォルトでは、アプリを強制終了するだけです)。アプリがまったく開かれていない場合とまったく同じように、新しいインスタンスを再作成するだけです)。詳細については、こちらを参照してください。

- 2 つ目のコンセプトは、Fast App Switch と Tombstoning です。アプリケーションのライフサイクルの詳細については、こちらを参照してください。基本的に、Windows ボタンを押すか、別のアプリに移動すると、アプリは休止状態になります。この状態では、アプリケーションは実行されていませんが、まだメモリ内にあります。すべてがまだメモリ内にあるため、戻ると、すべてが中断されたとおりになります。高速アプリ切り替えの場合に対処する主なケースは、アプリが非アクティブ化されるとすべてのネットワーク接続が切断されるという事実です。そのため、戻ったときに Web エラー メッセージ ダイアログが表示されず、やり直す必要があります。失敗した Web リクエスト。

アプリケーションの 2 番目に考えられる状態は、アプリが休眠状態になった後、いくつかのアプリを開き、デバイスに十分なメモリがない場合、アプリを廃棄することを選択することです。その状態では、アプリはメモリから削除されるため、保存していないものはすべて失われます。アプリに戻ると、ユーザーが以前にいたページに戻り、再作成されます。
つまり、アプリが非アクティブになる前にこのケースを処理するには、次のものが必要です。

  • ナビゲーション パラメータで渡していない可能性のあるコンテキスト固有のデータを保存します。
  • ユーザーが現在行っていることを保存する可能性があります (たとえば、現在長いテキストを入力している場合、ユーザーが最初から再入力する必要がないように、保存する方がよい場合があります)。
  • 現在のスクロール位置や選択したアイテムのようなものを保存するとプラスになる可能性があります

また、アプリが再開したときに、必要なすべての情報を再クエリするようにする必要があります。メイン ページの OnNavigatedTo に (Web サーバーなどから) データをロードし、再クエリせずに詳細ページでデータを再利用すると、壊れる可能性があります。詳細ページにいる場合は、スタートボタンを押してから、他の操作を行い、アプリの tombstonne を実行します。アプリに戻ると、データは利用できなくなります (メモリが「クリア」され、メイン ページの onNavigatedTo が実行されているため)。詳細ページに直接戻るため、呼び出されません)。

ページの状態とアプリケーションの状態を使用して、廃棄のケースを適切に処理するために必要な情報を保存できます。基本的に、アプリが非アクティブ化されたときに、シリアライズされるオブジェクトを追加できるディクショナリがあります (保存しようとするオブジェクトがシリアライズ可能であることを確認する必要があります)。

Tombtonning ケースを簡単にテストするには、プロジェクトのプロパティで、[デバッグ] タブで [デバッグ中に非アクティブ化時に廃棄] チェック ボックスをオンにします。このように、デバッグしてWindowsボタンを押すか、別のアプリに移動すると、常にアプリが廃棄されます。それが本当に tombstonning であることを確認するために、戻ったときにアプリが数秒間再開画面を表示するはずです (tombstonning の場合は、ほぼ瞬時です。

于 2013-10-22T23:00:27.970 に答える
0

高速な切り替えは、開発者にとって本当に重要なことではありません。あなたが心配する必要があるのは「廃棄」です - 誰かがあなたのアプリから離れたとき、あなたは状態を保存する必要があります.その保存された状態をリロードする必要があります。これがApplication_LaunchingApplication_Activated(ユーザーがスタート画面から新たにアプリを起動した場合と、アプリが一時停止され、現在は再開されているが最初から再開された場合) の違いです。

以前の時点では、これがアプリの切り替えが機能する唯一の方法でした。Fast App Switching は後で追加され、単純にコントラクトを変更して、トゥームストーン化せずに中断したところからアプリを再開できるようにしました。これはメモリなどに依存しますが、多くの場合、アプリが廃棄された状態をリロードするのを待つ必要がなくなるユーザーにとっては単なるメリットです。開発者としてのあなたは、あなたが廃棄されるだろうと想定する必要があります。

于 2013-10-22T16:46:06.700 に答える