0
我有一個消息對話框以在沒有互聯網時提示用戶。MessageDialog在被調用時崩潰 - Windows Phone Store應用程序
public async void validateInternet()
{
if (!isInternet())
{
Action cmdAction = null;
MessageDialog _connectAlert = new MessageDialog("We are currently experiencing difficulties with your conectivity. Connect to internet and refresh again.", "No internet");
_connectAlert.Commands.Add(new UICommand("Retry", (x) => { cmdAction =() => validateInternet(); }));
_connectAlert.DefaultCommandIndex = 0;
_connectAlert.CancelCommandIndex = 1;
await _connectAlert.ShowAsync();
cmdAction.Invoke();
}
}
public static bool isInternet()
{
ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile();
bool internet = connections != null && connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
return internet;
}
現在,我在MainPage加載時調用此函數validateInternet
。該應用程序打開消息對話框,並立即崩潰。代碼有什麼問題?
一個A first chance exception of type 'System.UnauthorizedAccessException' occurred in BusTrack.exe Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
在
await _connectAlert.ShowAsync();
代碼本身沒有問題。它可以在Page.Loaded和OnNavigatedTo中正常工作。你究竟在哪裏叫它?從UI線程? – 2014-12-04 07:11:04
我從'public MainPage()'調用它。我也嘗試從'MainPage_Loaded'調用它。相同的錯誤 – 2014-12-04 07:38:30
好吧,這似乎是爲我工作。 'validateInternet'方法是你在'Loaded'處理程序中調用的唯一東西嗎?如果您嘗試顯示對話框,而另一個對話框已顯示,則會發生此異常。與此無關 - 如果您不按「重試」並將拋出NullPointerException,則cmdAction將爲空。 – yasen 2014-12-04 09:10:12