情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 のアプリを終了する、または閉じる方法

2014/06/18

このトピックでは、Windows Phone アプリを終了する、または閉じる方法とベスト プラクティスについて説明します。

このトピックは、次のセクションで構成されています。

次の表は、Windows Phone アプリを終了する、または閉じるユーザー操作、イベント、メソッドの一覧です。

この表に出てくる状態とは、PhoneApplicationService によってアプリ レベルで、および PhoneApplicationPage によってページ レベルで管理されている状態ディクショナリのことです。

ユーザー操作、イベント、またはメソッド

結果

発生するイベント

バック スタックおよび状態への影響

ユーザーがアプリの先頭ページで [戻る] ボタンを押した。

アプリが閉じられます。

Closing

アプリがバック スタックから削除されます。状態は保持されません。

ユーザーが [スタート] ボタンを押した。

アプリが非アクティブ化されます。

Deactivated

次のいずれかのイベントが発生するまで、アプリはバック スタックに残されたままで、状態も保持されます。

  • ユーザーが [スタート] 画面から、または戻るボタン以外の方法で再度アプリを起動する。

  • バック スタックがいっぱいになったためアプリがバック スタックの終わりから削除される。

  • デバイスが再起動されるか、アプリがアンインストールされる。

未処理の例外が発生した。

アプリが終了します。

ありません。

アプリがバック スタックから削除されます。状態は保持されません。

アプリが Terminate メソッドを呼び出した。

アプリが終了します。

ありません。

アプリがバック スタックから削除されます。状態は保持されません。

以下に、Windows Phone アプリを終了する、または閉じるためのベスト プラクティスを示します。

アプリのライフサイクルとリソースの管理については Windows Phone オペレーティングシステムに任せる。

アプリを閉じたりアプリのリソースを解放することについて、開発者が配慮する必要はありません。

  • ユーザーが [戻る] を押してアプリを終了すると、アプリは閉じられます。

  • ユーザーが別のアプリを起動すると、使用中のアプリが非アクティブ化され、休止状態になります。別のアプリ用にリソースを追加する必要がある場合は、休止中のアプリが破棄されます。

Windows Phone オペレーティングシステムは、こうした条件を処理して、電話のリソースを自動的に管理します。詳細については、「Windows Phone 8 のアプリのアクティブ化および非アクティブ化」を参照してください。

アプリを終了するために例外を使用しない。

アプリで未処理の例外が発生すると、ユーザーの電話と Windows Phone サーバーの両方でリソースが無駄に消費されます。

電話は、コードのバグを見つけて修正できるように、未処理の例外のクラッシュ ダンプを生成してアップロードします。アプリを閉じるためにクラッシュさせると、バッテリー電源とネットワーク帯域幅が浪費されます。

[閉じる]、[中止]、または [終了] ボタンを用意しない。

ユーザーは、[スタート] ボタンを押すか、[戻る] ボタンを使用すれば、アプリを終了できることを知っています。Windows Phone のプログラミング モデルと矛盾するオプション、あるいは他のアプリにはないオプションを提供すると、ユーザーを混乱させることになります。詳しくは、次のブログの投稿を参照してください。

バック スタックを管理して、[戻る] ボタンを自然に処理する。

ユーザーがアプリをナビゲートしているとき、[戻る] ボタンが押されたら、アプリ内の最も自然と思えるページに戻ります。つまり、アプリは、必ずしも前に表示されていた項目に戻るとは限らないということです。また、状況に関係なくいつでも同じページに戻るわけでもありません。

組み込みアプリの動作から、次の例を考えてみてください。

  • リマインダをタップしてリマインダを表示した後、[戻る] ボタンが押されると、前のアクティビティに戻ります。カレンダーには戻りません。

  • 固定された項目 (すなわち、セカンダリ タイル) をタップして連絡先などの特定の項目を表示したあと [戻る] が押されると、[スタート] 画面に戻ります。People ハブには戻りません。

複数のステップを必要とするオンライン ショッピングなどのトランザクション処理中に [戻る] ボタンが押されたら、進行中のトランザクションの直前のステップに戻ります。トランザクションが完了した後、[Back] ボタンが押されたら、通常のブラウジング動作に戻ります。RemoveBackEntry メソッドを使用すると、トランザクションの完了時に、バック スタックから不要になったページを削除できます。詳細については、「Windows Phone 8 のバック スタックを使用したナビゲーション方法」を参照してください。

ページをバック スタックに保存しないことで、ナビゲーションを簡素化するには、いくつか方法があります。

  • 一連の詳細項目では、1 ページ上に配置された項目をブラウズします。コントロールを再バインドして、次の項目を表示します。項目間を移動するには、アプリ バーのボタンを使用します。[戻る] ボタンが押されたら、項目一覧に戻ります。たとえば、組み込みの電子メール アプリの動作はこのようになっています。

  • 警告などの遷移的 UI の場合は、Popup コントロールを使用することを検討します。[戻る] ボタンが押されたら、ポップアップ ウィンドウが閉じます。この動作を有効にするには、ポップアップ ウィンドウが表示されている間に BackKeyPress イベントを処理して、e.Cancel = true を設定します。

現在ページのコンテンツを変更したり、新しいコンテンツに移動するのに、[戻る] ボタンを使用しないでください。

詳しくは、次のブログの投稿を参照してください。

このセクションでは、開発者がアプリの [閉じる] ボタンを実装するケースとその理由について説明します。

重要:重要:

このセクションで推奨する解決策についての詳細は、「Windows Phone アプリを終了する、または閉じるためのベスト プラクティス」を参照してください。

アプリを終了する理由

推奨される解決策

アプリを続行できない。たとえば、ユーザーがライセンス契約に同意することを拒否した。

ユーザーに [スタート] または [戻る] ボタンを押させて、アプリを終了します。

または、Terminate メソッドを呼び出します。

アプリが不安定な状態になった。たとえば、未処理の例外が発生した。

オペレーティングシステムにアプリを終了させる。

ユーザーが大量のページを移動した。終了するのに、ユーザーに何度も [戻る] ボタンを押させるのは避けたい。

ユーザーがアプリ内で最も自然と思えるページに戻ります。たとえば、一連の項目間を移動した後であれば、項目一覧に戻ります。各項目を逆順に辿らせることはしません。

アプリのメイン ページに戻る [ホーム] ボタンを追加することを検討します。

または、ユーザーに [Start] ボタンを押させて、アプリを終了します。

他のアプリが使用できるようにリソースを解放したい。

オペレーティングシステムにアプリのライフサイクルと電話のリソースの管理を任せます。

表示: