2013-06-12 158 views
1

我是windows phone平臺上的新手。我正在嘗試製作新聞應用程序。在此應用程序中,用戶點擊閱讀新聞文章後,用戶想要再次返回主頁查看所有新聞標題,並再次點擊其他新聞。Windows Phone 8:後退按鈕

但是當用戶在閱讀第一篇文章後回到主頁時,用戶點擊第二個新聞標題。但是當用戶導航到新頁面時,第一篇新聞文章仍然存在。

我想問一下,當他或她按下回主頁時,是否有任何用戶的回退按鈕(讀完第一條新聞文章後)用於清除文章頁面緩存?

我用這個,但它does not;

private void ApplicationBarIconButton_Click_1(object sender, EventArgs e) 
{ 
    NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
} 

我寫的東西我的HttpRequest下,但它沒有爲我工作過;

private void LiveLongListSelector_Loaded(object sender, RoutedEventArgs e) 
{ 
    string url = "MYWEBAPIURL&rnd=" + new Random().Next(1,1000); 
    HttpWebRequest hWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); 
    hWebRequest.Method = "GET"; 
    hWebRequest.BeginGetResponse(ResponseLive_Completed, hWebRequest); 
    hWebRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache"; 
    hWebRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache"; 
    hWebRequest.Headers["Cache-Control"] = "no-cache"; 
    hWebRequest.Headers["Pragma"] = "no-cache"; 
} 

任何人都可以幫助我找到完美的後退按鈕或其他的東西嗎?

非常感謝您

+0

在第二頁上,您使用哪種方法獲取主頁上列出的新聞文章? –

+0

我使用「保護覆蓋無效OnNavigatedTo」來獲取文章的ID,並在其下面提出請求。 –

回答

0

有兩種方法對PhoneApplicationPage,你可以覆蓋並清除緩存:OnNavigatedToOnNavigatedFrom

+0

我會寫什麼「OnNavigatedFrom」方法?我使用「OnNavigatedTo」方法在我的其他頁面中查看詳細信息。你能幫我解答嗎? –

+0

@ kgms21 NavigationService.GoBack()是正確的答案,在這種情況下,頁面實例不會保存在內存中,您不需要應用任何邏輯來清理緩存的數據。我很困惑,我認爲問題是關於緩存清理,對不起。 –

5

只需使用NavigationService.GoBack(); 而是採用

NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 

它會自動清除所有漁獲物。

或者您可以在再次閱讀第二篇文章時使用NavigationService.RemoveBackEntry();。 使用的東西,喜歡 -

int a = NavigationService.BackStack.Count(); 
while (a > number) //number is stack count when comes to main page first time 
{ 
    this.NavigationService.RemoveBackEntry(); 
    a = NavigationService.BackStack.Count(); 
} 
+0

NavigationService.goBack();現在比較好,但是。我認爲該應用程序保持數據10秒。如果我等待10秒後來到我的主頁,點擊新文章,沒有問題,它顯示。我計算它的所有時間10-15秒.. –

0

我會建議使用下面的代碼在NavigatedTo()方法:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    while (NavigationService.RemoveBackEntry() != null); 
} 

希望,沒有什麼幫助。

相關問題