简单的UWP实时磁贴更新

时间:2016-08-14 20:45:53

标签: uwp live-tile

我有一个简单的UWP购物清单应用程序,它无需任何操作,并将其数据保存在本地存储中。当应用程序暂停时,我将当前列表写入本地存储。我想同时做的(或<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12"> <div class="hovereffect"> <img class="img-responsive" src="http://placehold.it/350x200" alt=""> <div class="overlay"> <h2>Effect 10</h2> <p class="icon-links"> <a href="#"> <span class="fa fa-twitter"></span> </a> <a href="#"> <span class="fa fa-facebook"></span> </a> <a href="#"> <span class="fa fa-instagram"></span> </a> </p> </div> </div> </div>主页面)也要更新实时图块以显示当前列表中项目数量的计数,以便用户可以看到这一事实而无需启动应用程序。

我无法找到适合这种简单案例的文档/示例...没有后台任务,没有推送通知,没有在某些时间表上发生任何事情,只是简单地更新了一个瓦片,主要是为了响应用户行动。我可以找到的示例似乎涉及使用OnNavigatedFrom,但我不明白是否需要一个,或者在这个简单的情况下是否应该使用它。

我需要在我的代码中进行更新的最基本步骤是什么,比如说,一个徽章计数(两者都在那里放一个值,如果计数为零则删除)?

1 个答案:

答案 0 :(得分:2)

找到我自己的答案。

我创建了一个服务类,我在其中添加了以下方法,每当我需要更新徽章计数时,我都会调用该方法:

using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;

    /// <summary>
    /// Add a badge count to the application tile (or remove if the count is zero)
    /// </summary>
    /// <param name="count">Number of items</param>
    public static void Update(int count)
    {
        // Get an XmlDocument containing the badge template
        var badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);

        // Get the "badge" element
        var badgeElement = (XmlElement)badgeXml.GetElementsByTagName("badge").First();

        // Set the count in its "value" attribute (as string)
        badgeElement.SetAttribute("value", count.ToString());

        // Create a badge notification from the XML content.
        var badgeNotification = new BadgeNotification(badgeXml);

        // Send the badge notification to the app's tile.
        BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeNotification);
    }