アプリの中断と再開のガイドライン

Applies to Windows and Windows Phone

ユーザーが切り替えたときに一時停止し、元に戻すと再開するアプリを設計します。アプリの目的と使用パターンを慎重に検討して、アプリが一時停止および再開されるときに可能な限り最適な操作性を実現できるようにします。 Windows ランタイム アプリの一時停止と再開の動作を設計するときは、次のガイドラインに従ってください。

Windows ランタイム アプリのライフサイクルの概要については、「アプリのライフサイクル」を参照してください。

  Windows 8.1 と Windows Phone 8.1 でシステムの応答性を向上させるために、アプリには中断後にリソースへの優先度の低いアクセスが与えられます。この新しい優先度をサポートするために、中断操作のタイムアウトが延長され、アプリには通常の優先度と同程度のタイムアウト (Windows では 5 秒、Windows Phone では 1 ~ 10 秒) が与えられます。 このタイムアウトの時間枠を延長したり、変更したりすることはできません。

推奨と非推奨

  • 短時間の後に再開した場合は、中断したときのアプリの状態に戻します。たとえば、ユーザーが電子メールを書いている途中で別のアプリに移動し、電子メール アプリに戻った場合、メール アプリのメイン ランディング ページではなく、書きかけのメールのページに戻る必要があります。
  • 長時間の後に再開した場合、ユーザーはアプリの既定のランディング ページに戻ります。たとえば、時間がたった記事や以前の天候データの表示に戻るのではなく、ニュースや天気予報アプリの主なランディング ページに戻ります。
  • 適切な場合は、アプリの以前の状態を復元するか、アプリを新たに開始するかをユーザーが選択できるようにします。たとえば、ゲームに戻るときに、ゲーム アプリを再開するか、新たに開始するかを選べるようにプロンプトを表示できます。
  • アプリを一時停止するときにアプリ データを保存します。一時停止中のアプリは、システムによって終了されても通知を受け取りません。したがって、アプリの状態を復元できるように、データを明示的に保存することが重要です。

    アプリでセカンダリ タイルなどの複数の起動ポイント、トースト通知、ファイルと URI の関連付けをサポートしている場合は、それぞれ起動ポイントに別々のナビゲーション履歴を作成することを検討してください。中断時には、プライマリ起動ポイントに関連付けられた状態を保存し、状態が失われることにユーザーが不満を感じるシナリオでのみセカンダリ起動ポイントの状態を保存します。保存する状態が多すぎると、アプリの再開が遅くなる可能性があります。

  • 保存されたアプリ データを使ってアプリを復元します。
  • アプリが中断されているときに、排他リソースとファイル ハンドルを解放します。前に説明したように、一時停止中のアプリは終了時に通知を受け取らないため、アプリを一時停止する際は他のアプリからアクセスできるように、リソースとハンドル (Web カメラ、I/O デバイス、外部デバイス、ネットワーク リソースなど) を確実に解放します。
  • ユーザーが最後に表示した後にコンテンツが変更された場合は、UI を更新します。再開されたアプリは、ユーザーが切り替えている間も実行されていたように表示されます。
  • アプリが画面から消されても終了しないでください。オペレーティング システムでは、ユーザーは一貫した方法でアプリにアクセスして管理できます。アプリは画面から消されると一時停止します。アプリのライフサイクルをシステムにゆだねて、ユーザーができるだけ効率的にアプリに戻れるようにします。これにより、システムのパフォーマンスとデバイスのバッテリ寿命も最適な状態になります。
  • ユーザーによって明示的に閉じられたアプリの状態は復元しないでください。回復不能の状態におちいったために、ユーザーがアプリを閉じた可能性があります。アプリがユーザーによって明示的に閉じられた場合は、再開のエクスペリエンスではなく新しいエクスペリエンスを提供します。アプリがユーザーによって閉じられた場合、PreviousExecutionState プロパティの値が ClosedByUser になります。
  • クラッシュが発生したために終了したアプリの状態は復元しないでください。アプリが予期せずに終了した場合、保存されているアプリ データは壊れている可能性があります。この格納されたデータを使ってアプリを以前の状態に復元しないようにします。
  • [閉じる] ボタンを表示するなど、ユーザーが UI からアプリを終了できる方法を提供しないようにします。ユーザーは、システムがアプリを管理しているという安心感を持っています。システムはアプリを自動的に終了することで、最良のシステム パフォーマンスと信頼性を確保できます。またユーザーは Windows でジェスチャを使うか、Windows Phone でタスク スイッチャーを使って、アプリを閉じることができます。
  • ディープリンクされたページに、ユーザーが取り残されることがないようにします。ユーザーがプライマリ タイル以外の起動ポイントからアプリを起動し、ディープ リンクされたページにランディングした場合でも、ユーザーがアプリのトップ ページに移動できるように UI を用意します。または、プライマリ タイルをタップしてトップ ページにアクセスできるようにします。

関連トピック

開発者向け (JavaScript と HTML を使った Windows ランタイム アプリ)
ApplicationExecutionState
Windows.ApplicationModel
Windows.ApplicationModel.Activation
Windows.UI.WebUI
WinJS.Application
アプリのライフサイクルの概要
アプリを一時停止する方法 (JavaScript)
アプリを再開する方法 (JavaScript)
開発者向け (C#/VB/C++ と XAML を使った Windows ランタイム アプリ)
ApplicationExecutionState
Windows.ApplicationModel
Windows.ApplicationModel.Activation
Windows.ApplicationModel.Core
Windows.UI.Xaml.Application
アプリのライフサイクルの概要
アプリを一時停止する方法 (C#/VB/C++)
アプリを再開する方法 (C#/VB/C++)
サンプル
WRL サンプルを使ったアプリのアクティブ化、再開、中断に関するページ
WinJS サンプルを使ったアプリのアクティブ化と中断に関するページ
C# と VB の概要の Hello World のサンプル (パート 2)

 

 

表示:
© 2014 Microsoft