Windows Phone 點擊按鈕退出當前應用

來源:互聯網
上載者:User

或許你會注意到,在Silverlight for Windows Phone程式中,並沒有之前的類似於“App.Exit()”之類的函數用來讓你退出程式。這是怎麼回事兒呢?

很簡單,在Windows Phone 7中系統要求配備了硬體的“Back”鍵,該鍵用於在程式中導航(返回)到上一個頁面(螢幕)或者應用程式。當菜單、對話方塊、搜尋方塊、虛擬鍵盤等開啟時,點擊它則關閉菜單、對話方塊、搜尋方塊和虛擬鍵盤等。

當應用程式停留在該程式的第一個介面的時候,如果按下返回鍵,則該程式會自動關閉並回到開啟該程式的上一個介面。由於該動作是系統預設用來關閉程式的方法,所以並不需要你在代碼中強行退出該程式。所以,微軟並沒有留下退出程式的函數供你調用。

如果。。。嗯,我是說如果你非要在代碼中關閉程式呢?也不是沒辦法。

第一種辦法,調用XNA中的退出方法,為了節約系統資源,XNA中提供了離開遊戲的方法

  1. 添加對Microsoft.Xna.Framework.Game的引用;
  2. 調用Game.Exit()來退出程式。

但是請注意,不要使用該方法。因為該方法違反了微軟的應用程式驗證的規範,將會導致你的程式無法提交到Marketplace中去。

第二種方法,拋出自訂的Quit異常來退出程式

在App.xaml.cs檔案中的App類添加如下代碼:

Code Snippet
  1. private class QuitException : Exception { }
  2. public static void Quit()
  3. {
  4.     throw new QuitException();
  5. }

 

 

在App類的Application_UnhandledException方法中添加代碼,使得它看起來如下:

 

Code Snippet
  1. // Code to execute on Unhandled Exceptions
  2. private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
  3. {
  4.     if (e.ExceptionObject is QuitException)
  5.         return;
  6.     if (System.Diagnostics.Debugger.IsAttached)
  7.     {
  8.         // An unhandled exception has occurred; break into the debugger
  9.         System.Diagnostics.Debugger.Break();
  10.     }
  11. }

 

 

然後確保App.xmal中具有設定了UnhandledException的處理:

Code Snippet
  1. UnhandledException="Application_UnhandledException"

 

 

好了,最後只需要在你想要退出程式的地方調用”App.Quit()”方法就可以退出程式了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.