0

我正在尝试在我的应用程序中实现两个以上的辅助实时磁贴。我遵循了这个样本使用应用栏上的 pin-to-start 按钮创建辅助磁贴。我正在使用存在的 NotificationExtensions 库更新辅助磁贴。现在,我面临一个问题,我正在尝试使用通知队列在本地更新我的每个活动图块,但更新的整个行为充其量是不稳定的。3 个图块中只有一个持续更新(没有成功更新的固定图块),其余的只更新一次然后停止。恐怕这与通知没有正确排队有关,但我不知道我哪里出错了。最初,我所有的辅助磁贴创建和它们各自的通知逻辑都在单独的代码隐藏中。我什至试图将它们合并到一个页面中,但它仍然给出相同的结果。

            ITileWideText04 tileContent = TileContentFactory.CreateTileWideText04();
            tileContent.TextBodyWrap.Text = "1 secondary tile from NotificationsExtensions!";

            ITileSquareText04 squareContent = TileContentFactory.CreateTileSquareText04();
            squareContent.TextBodyWrap.Text = "1secondary tile from NotificationExtensions!";
            tileContent.SquareContent = squareContent;


            ITileWideText04 tileContent2 = TileContentFactory.CreateTileWideText04();
            tileContent2.TextBodyWrap.Text = "2c secondary tile from NotificationsExtensions!";

            ITileSquareText04 squareContent2 = TileContentFactory.CreateTileSquareText04();
            squareContent2.TextBodyWrap.Text = "2 secondary tile from NotificationExtensions!";
            tileContent2.SquareContent = squareContent;

            var tile1 = tileContent.CreateNotification();
            tile1.Tag = "a";
            var tile2 = tileContent2.CreateNotification();
            tile2.Tag = "b";

然后像这样更新图块: TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).EnableNotificationQueue(true); TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile1); TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile2);

其余的次要瓷砖依此类推。

感谢您对此的任何帮助。

4

1 回答 1

0

嗯。可能发生的情况是,每次在您引用的这些代码行上,它都会为您获取一个新的更新程序,并且仅在第一个代码行上启用通知队列:

TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).EnableNotificationQueue(true); 
TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile1);
TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile).Update(tile2);

在您的底部代码片段中,您可以尝试这样的事情吗?

var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(Constants.ProfileAppTile);
updater.EnableNotificationQueue(true); 
updater.Update(tile1); 
updater.Update(tile2);

此外,这些文章包含可以正常工作的示例代码,带有辅助磁贴和动态磁贴,欢迎您从中借阅:
真实世界辅助磁贴:在 Windows 8 应用程序中使用辅助磁贴的三大技巧
Real-World Live Tiles : 在 Windows 8 应用程序中使用动态磁贴

于 2013-03-14T05:30:47.620 回答