如何在Windows Phone 8应用程序中使用后台代理更新多个辅助磁贴?

时间:2014-02-17 17:02:23

标签: c# windows-phone-8

我需要在Windows Phone 8应用程序中更新几个辅助磁贴上的数据。我正在使用BackGround代理来更新磁贴。

 IconicTileData tileData = new IconicTileData
        {
            IconImage = new Uri("ApplicationIcon.png", UriKind.RelativeOrAbsolute),
            Title = "My Tile title",
            Count = new Random().Next(1, 10),
        };

        ShellTile mainTile = ShellTile.ActiveTiles.FirstOrDefault();
        if (mainTile != null)
        {
            mainTile.Update(tileData);
        }

        // If debugging is enabled, launch the agent again in one minute.
#if DEBUG_AGENT
    ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));
#endif

这里是更新mainTile数据。但是,如何找到固定的辅助磁贴数量以及如何单独更新它们?

2 个答案:

答案 0 :(得分:1)

ShellTile.ActiveTiles冻结MSDN documentation:此列表包括无法删除的应用程序磁贴及其所有辅助磁贴。 Application Tile始终是集合中的第一个。

所以:

foreach (var tile in ShellTile.ActiveTiles)
{
    //update the tile
}

答案 1 :(得分:0)

如您所知,每个磁贴都有一些导航URI。您可以在导航URI的查询字符串中搜索唯一的单词。

ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("unique key/value in querystring"));

通过这种方式,您可以通过迭代它们并检查导航URI来识别所有辅助切片。