2013-02-15 58 views
0

我用這個方法來關閉我的應用程序:不能放棄我的WP7 Silverlight應用程序

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

當我按下返回鍵後調用它,應用程序關閉像預期一樣:

protected override void OnBackKeyPress(CancelEventArgs e) 
{ 
    quit(); 
} 

但我稱之爲此方法的任何其他地方,堆棧已被清空,但應用程序不會關閉。

如果我嘗試:

quit(); 
NavigationService.GoBack(); 

將會有一個運行時錯誤。如果有人可以幫助我,因爲我不喜歡通過例外,因爲它會被記錄爲市場統計數據中的錯誤。

回答

1

無需清除導航堆棧;如果應用程序終止,導航堆棧將消失。不要擔心用戶前進;沒有前進鍵。

要刪除例外:

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

但在這之前,看代碼:什麼是你想實現什麼?首先你正在清理堆棧,然後你想使用堆棧。

+0

感謝您的筆記。我不知道爲什麼當我在'quit()'之前調用'NavigationService.GoBack()'之後,它終於起作用了。 – 2013-02-15 07:20:59