web-dev-qa-db-ja.com

プログラムでWP7アプリケーションを閉じますか?

重複の可能性:
Windows Phone 7のアプリケーションを閉じる

プログラムでWP7アプリケーションを閉じるにはどうすればよいですか?

16
Vercas

ランディングページでこれを行うことにより、いつでも出口を呼び出すことができます。アプリケーションの戻るボタンをクリックして次のコードを使用します。

if (NavigationService.CanGoBack)
{
    while (NavigationService.RemoveBackEntry() != null)
    {
        NavigationService.RemoveBackEntry();
    }
}

これにより、スタックからバックエントリが削除され、戻るボタンを押すと、例外なくアプリケーションが閉じられます。

28
Syed Umar Ahmed

「終了」ボタンを提供するための既知のソリューションを認めていますが、現在、WP7アプリケーションから「終了」を実装する説得力のある理由はわかりません。

プラットフォームは、アプリの閉鎖を完全に管理することができます。出口を提供しないアプリが多いほど、ユーザーはアプリのハウスキーピングについて考えないことに慣れ、プラットフォームに管理させることができます。

ユーザーは、スタート、戻るなどを使用してデバイスをナビゲートするだけです。

ユーザーが現在のアプリを終了して、他のことをすばやく(簡単に)実行したい場合は、スタートボタンを押すだけです。

.Exit()は、xnaで使用できますが、実際にはもう必要ありません。 CTP中に、ゲームが終了ボタンを提供する必要があるという証明書要件がありました。これはなくなりました。

ゲーム以外のアプリでは、これを実装する必要はありませんでした。

このトピックについて議論すればするほど(そして実際にブロックの周りでうまく実行されているほど)、出口をコーディングする必要がないことを私に示す指標が増えます。

また、アプリの証明書の要件は、アプリに未処理の例外があってはならないという特定のものであることにも言及する必要があります。

8
Mick N

それを行うための良い方法は実際にはありません。 ここにあなたのオプションの素晴らしい説明/概要 があります。

つまり、これがSilverlightアプリ(XNAではない)の場合、サポートされていません。未処理の例外をスローするだけで、アプリは終了します。私はそれをお勧めしません、それはハックのようであり、それを行うためのかなり大雑把な方法のようです。

これが見栄えを良くする方法です しかし、結局のところ、それでも例外がスローされます。アプリケーション認証プロセスで、未処理の例外がスローされているかどうかが確認されるかどうかはわかりませんが、問題になる可能性があると思います。

7
driis

最も簡単な方法は、ルート/ホームページからシミュレーションを戻すことです。これは、Fruit Ninjaのようなアプリ(終了ボタンがあるアプリ)が行うこととまったく同じだと思います。

if ( NavigationService.CanGoBack )  
{  
    NavigationService.GoBack();  
}  

ところで、上記のスニペットはSilverlightアプリで機能します。

5
moonlightdock

アプリケーションを終了する別の方法は、MicrosoftXnaフレームワークのGameクラスの終了関数を呼び出すことです。

例えば:

Microsoft.Xna.Framework.Game game = new Microsoft.Xna.Framework.Game();
game.Exit();
4
Santhu
 private void exitBUtton_ONclick(object sender, RoutedEventArgs e)
    {
        throw new Exception("ExitAppException");
     }
0
Sandy