2016-01-19 36 views
2

我使用下面的代碼來檢查我的應用程序閉幕的Windows Phone應用程序編程

public async void CheckNetwork() 
    { 
     if (!NetworkAvailabilty.Instance.IsNetworkAvailable) 
     { 
      MessageDialog Message = new MessageDialog("Network access not available.", "Network Error"); 
      Message.Commands.Add(new UICommand("Close")); 
      await Message.ShowAsync(); 
      Application.Current.Exit(); 
     } 
    } 

這將按預期在Windows 10桌面的開始網絡接入。但是當我在手機中運行應用程序時,它無法關閉應用程序。這可能是什麼原因以及如何強制關閉我的應用程序?

回答

1

作爲設計原則,你不應該手動關閉應用程序。請參閱this link(向WP8開發人員提供,但仍然有效)。 但是,如果您正在爲自己開發測試應用程序,則可以拋出異常,這是關閉應用程序的唯一方式。

throw new Exception(); 

請不要做,如果你的目標是發佈在市場上的應用:

在你的應用程序的未處理的異常不必要既消耗用戶的手機上,並在Windows Phone服務器上的資源。 手機生成並上傳未處理異常的崩潰轉儲,以幫助您找到並修復代碼中的錯誤。崩潰您的應用程序以關閉它會浪費用戶的電池電量和網絡帶寬。

+0

我的應用程序需要網絡訪問才能工作。沒有使用網絡訪問功能沒有功能。所以我認爲在沒有網絡可用性的情況下突然打開應用程序是沒有任何意義的。這就是爲什麼我想關閉應用程序。我還有什麼其他選擇? –

+1

我會說一個專門的頁面,解釋沒有找到網絡,邀請用戶更改他的WiFi /數據設置。您可以在此頁面插入針對設備設置的特殊鏈接(URI「ms-settings:network-wifi」和「ms-settings:datausage」),請參閱https://msdn.microsoft.com/en-us/ library/windows/apps/mt228342.aspx插入這些鏈接 – bviale

+0

正如robin abishek所說,如果您必須退出應用程序,請使用Terminate。 –

1

嘗試Application.Current.Terminate(),而不是退出()

+0

沒有Application.Current.Terminate()方法。我是否缺少任何參考? –

+0

@MohamedShakeel,它在官方文檔中。檢查此鏈接.. [https://msdn.microsoft.com/library/windows/apps/system.windows.application.terminate(v = vs.105).aspx](https://msdn.microsoft.com/ library/windows/apps/system.windows.application.terminate(v = vs.105).aspx)..你可以在那裏查看版本信息。它支持Windows Phone操作系統 – abisheksampath

+0

@robinabishek謝謝,但它是用於WinPhone8和8.1,而不是Win10和Win10Mobile – Shahriar

相關問題