实时标题进入无限循环

时间:2011-11-19 15:09:07

标签: windows-phone-7

我使用实时标题来启动特定页面:

主屏幕中的动态磁贴 - 启动 - >任务后的P1和转到 - > P2 - >的MainPage

当您在MainPage中单击后退按钮时,应用程序将不会退出,而是以循环方式转到P2。

以下是代码:

        try
        {
            ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("PageTakePic.xaml"));

            if (TileToFind == null)
            {

                StandardTileData NewTileData = new StandardTileData
                {

                    //BackgroundImage = new Uri("Red.jpg", UriKind.Relative),
                    //--front tile
                    Title = "Take Pic",
                    //Count = 12,

                    BackTitle = "Quick Access",
                    //--40 char
                    BackContent = "Take Pic",
                    //BackBackgroundImage = new Uri("Blue.jpg", UriKind.Relative)
                };

                // Create the Tile and pin it to Start. This will cause a navigation to Start and a deactivation of our application.
                ShellTile.Create(new Uri("/PageTakePic.xaml", UriKind.Relative), NewTileData);
            }
            else
            {
                MessageBox.Show("A live title created for this service already.");
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show("Try again. Error encountered: " + ex.Message);
            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }

更新

主屏幕中的动态磁贴 - 启动 - > P1(PageTakePic.xaml) - > P2 - >的MainPage

使用以下方法无法在MainPage中工作。它仍然进入循环:


protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    NavigationService.RemoveBackEntry();
}

2 个答案:

答案 0 :(得分:1)

这是Mango中Live Tiles的Deep Links需要考虑的常见问题。您需要做的是在点击主页面时删除BackStack条目,以便点击后退按钮将退出应用程序。

以下是可能有用的代码段:

    void ClearBackStack()
    {
        while (NavigationService.CanGoBack)
        {
            NavigationService.RemoveBackEntry();
        }
    }

答案 1 :(得分:0)

如果您通过导航到主页来处理错误,例如:

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

然后有可能在你导航回来的某个时刻 - 你得到一个错误并转而导航到MainPage,所以你的实时图块会将你带到PageTakePic,然后当你按下时 - 导航失败而你向前导航到MainPage 。然后后退按钮会让你回到PageTakePic等等......