2014-09-02 81 views
12

在WP7和WP8中,我只需要清除頁面中的backstack,然後按Back按鈕並關閉應用程序。在WP8.1中,我做Frame.BackStack.Clear(),按返回和應用程序只是最小化..如何用後退按鈕殺死它?如何關閉Windows Phone 8.1應用程序

回答

17

您可以添加在你的主頁定義:

Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; 

然後

private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e) 
{ 
    if (!e.Handled && Frame.CurrentSourcePageType.FullName == "YourApp.MainPage") 
     Application.Current.Exit(); 
} 

警告:正如有人說,你不應該使用這個,讓系統來處理應用程序關閉。例如,如果您使用Application Insights,我發現它們在發佈模式下不會發送到Azure

+0

我不認爲他真的需要'if'語句。如果'e.Handled'已經被處理過了,我猜可能不會冒泡到'HardwareButtons_BackPressed'。 – 2014-09-02 15:51:20

+3

謝謝。這個WP8.1是全部sh * t。一切都不同於7,8 .. – 2014-09-03 05:57:07

+2

@ V.G。完全同意「一切與7,8不同」,但在這件事或「sh * t」中,我會把它放在「7,8」旁邊,而不是「8.1」(暗示WP8.1_WinRT_):) – Sevenate 2015-04-28 22:47:12

3

我認爲上述內容已被取消。退出現在是一個事件。

嘗試

Application.Current.Terminate();

+2

你從哪裏找到Terminate?我只看到[退出](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.exit(v = win.10).aspx) – 2015-04-03 06:01:57

+0

你在工作嗎在Windows Phone 8.0中?或者你在7.1編碼。 – MattyMerrix 2015-04-06 17:57:45

+1

我使用WP 8.1 RT,問題也指向這個版本。 – 2015-04-06 18:04:11

2

MSDN建議不要關閉應用程序在Windows 8.1:

我們建議應用程序沒有關閉自己編程,除非 絕對必要的。例如,如果應用程序檢測到內存泄漏,它可以自行關閉以確保用戶個人數據的安全。 當您以編程方式關閉應用程序時,系統將此視爲 應用程序崩潰

https://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx#close

3

你可以簡單地通過使用XAML創建一個按鈕,然後將此代碼添加到您的主頁xaml.cs

Application.Current.Exit();

相關問題