Windows Phone 8:后退按钮

时间:2013-06-12 12:38:12

标签: c# windows-phone-7 xaml windows-phone-8

我是Windows手机平台上的新手。我正在尝试制作新闻申请。在此应用程序中,用户点击并阅读新闻文章,之后,用户想要回到主页再次查看所有新闻标题,并再次点击其他新闻。

但是当用户在阅读第一篇文章后返回主页时,用户点击第二个新闻标题。但是当用户导航到新页面时,第一篇新闻文章仍在那里。

我想问这个问题,是否有用户的后退按钮(阅读第一篇新闻文章后)用于清除文章页面的缓存时他或她按回主页?

我用过这个,但它没有;

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";
}

任何人都可以帮我找到完美的后退按钮或其他东西吗?

非常感谢

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

PhoneApplicationPage上有两种方法可以覆盖和清除缓存:OnNavigatedToOnNavigatedFrom

答案 2 :(得分:0)

我建议在NavigatedTo()方法中使用以下代码:

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

希望,这有帮助。