Win8 Metroは、プロセスがアクティブ化および一時停止状態になったときのコールバックを提供しますが、アプリがフォアグラウンドまたはバックグラウンドになったときはどうでしょうか?アプリがバックグラウンドに移行するとすぐにプロセスが一時停止されるとは限りません。同様に、前回の起動からアクティブ化されたまま、アプリがフォアグラウンドに移行する可能性があります。
アプリのフォアグラウンドまたはバックグラウンドでコードを実行するために使用できるJavascriptのイベントはありますか?
Win8 Metroは、プロセスがアクティブ化および一時停止状態になったときのコールバックを提供しますが、アプリがフォアグラウンドまたはバックグラウンドになったときはどうでしょうか?アプリがバックグラウンドに移行するとすぐにプロセスが一時停止されるとは限りません。同様に、前回の起動からアクティブ化されたまま、アプリがフォアグラウンドに移行する可能性があります。
アプリのフォアグラウンドまたはバックグラウンドでコードを実行するために使用できるJavascriptのイベントはありますか?
アプリケーションがバックグラウンドに配置されているが、(まだ)一時停止されていない場合は、ドキュメントオブジェクトの「visibilitychanged」イベントと「hidden」プロパティを使用できます:http: //msdn.microsoft.com/en-us/library /ie/hh773167(v=vs.85).aspx
これらは、アプリが表示されなくなった瞬間に発生します(たとえば、ユーザーがスタートボタンを押すか、別のアプリケーションにスワイプします。
その後、アプリが一時停止されると、適切な一時停止イベントも発生します。
私の理解では、メトロアプリが完全にフォーカスを失う(完全に画面から外れる)とすぐに、OSによって15秒(私は思う)、停止して一時停止される前にOnSuspendコードを実行します。これは、アプリ全体が完全なフォーカスを失うたびに発生し、再びフォーカスを取得すると(ユーザーがアプリに戻ると)逆になります。
これらのフォアグラウンドイベントとバックグラウンドイベントで実行するコードは、SuspensionおよびReactivationイベントハンドラーに配置する必要があります
メトロスタイルアプリでは、ユーザーがアプリケーションから離れるとアプリケーションが一時停止し、ユーザーがアプリケーションに戻ると再開します。メトロスタイルアプリはフルスクリーンで没入型で実行されるため、「一時停止」は「バックグラウンドに入る」と考えているものと同等であり、再開はフォアグラウンドに入ると同等です。
サスペンドイベントが発生すると(ユーザーがアプリからスワイプして離れたとき)、アプリは5秒間オフ状態を保存します。サスペンドモードでは、実行のメインスレッドはサスペンドされますが、アプリは引き続きメモリに保持されます。ユーザーがすぐにアプリに戻ってくると、スレッドが再開され、保存した状態が使用されることはありません。ただし、ある時点で、Windowsのメモリが多すぎて、プロセスを終了する必要がある場合があります。アプリが終了した場合は、保存した状態を使用して、次回の実行時に終了したときの状態にアプリを復元できます。
詳細については、次のリソースを確認してください。*さまざまなアプリケーション実行状態:http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.activation.applicationexecutionstate.aspx *これに関するガイドライン:http ://msdn.microsoft.com/en-us/library/windows/apps/hh465088.aspx