2010-12-02 130 views

回答

28

您可以隨時在您的着陸頁上使用您的應用程序返回按鈕的點擊這樣的代碼調用退出從堆棧中,您將按下後退按鈕,它將無任何例外地關閉應用程序。

7

有沒有一個好方法來做到這一點。有一個nice explanation/overview of your options here

簡而言之,如果這是一個Silverlight應用程序(不是XNA),它不受支持。您可以簡單地拋出一個未處理的異常,並且該應用程序將退出。我不會建議這樣做,這似乎是一種黑客行爲,也是一種相當粗暴的做法。

Here is a way to make it look nicer,但在一天結束時它仍然會引發異常。我不知道應用程序認證過程是否會查看是否拋出未處理的異常,但我想這可能是一個問題。

+0

謝謝你的鏈接!它幫助!畢竟,我決定取消退出按鈕。 :D – Vercas 2010-12-02 19:01:12

+0

這完全錯了。自第一次發佈以來,您必須使用`NavigationSerice.Back()`命令離開應用程序。如果你不在root中,只要應用程序關閉,你就可以使用它。但其他的東西被黑客攻擊,不推薦,對不起。 – goldengel 2011-08-23 12:41:48

+0

我認爲微軟檢查未處理的異常並拒絕具有它的應用程序。 – SKandeel 2011-11-15 02:28:12

8

確認已知的解決方案提供「退出」按鈕,目前我沒有看到從WP7應用程序實現「退出」的強制性理由。

該平臺完全能夠管理應用程序的關閉。越多的應用程序不提供退出,更快的用戶將習慣於不考慮應用程序管理,並讓平臺管理它。容易 - - 使用開始,背部等

如果用戶希望從當前應用程序的去做些別的事情很快

用戶將只是導航他們的設備他們只投中開始。

.Exit(),雖然可用於xna,但實際上不再需要。在CTP期間有一個證書要求,遊戲必須提供退出按鈕。現在這消失了。

非遊戲應用程序從來沒有需要實現這一點。

這個話題的討論越多(它在這個區塊的運行真的很好),對我來說指標越多,就不需要編碼出口。

還應該提到應用程序的證書請求是特定的應用程序不應該有未處理的異常。

+2

通常建議您嘗試與平臺配合,而不是與之對抗。用戶很好地保持一致性。 – 2010-12-03 22:52:18

5

最簡單的做法是從根/主頁進行模擬。我猜這正是什麼應用程序(那些已經退出按鈕)像水果忍者做的。

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

順便說一句,上面的代碼片段適用於silverlight應用程序。

+0

這是唯一真正的答案。我無法相信4個upvotes的答案,例外或破壞應用程序。 – goldengel 2011-08-23 12:34:37

0
private void exitBUtton_ONclick(object sender, RoutedEventArgs e) 
    { 
     throw new Exception("ExitAppException"); 
    } 
4

退出應用程序的另一種方式是調用Microsoft Xna框架的Game類的退出函數。

例如:

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

這將刪除回條目:

Microsoft.Xna.Framework.Game game = new Microsoft.Xna.Framework.Game(); 
game.Exit(); 
相關問題