使用C#创建Windows 8动态磁贴后台代理程序

3
我正在尝试在Windows 8上定期更新磁贴,并且需要在应用程序本身未运行时执行此操作。 此MSDN页面 上列出的通知选项都不适用于我,因为我想轮询系统信息,例如CPU温度等,这不适合列出的通知样式。
我在StackOverflow的其他地方查看了类似的问题,但是针对使用后台工作者的Windows Phone 7 。对我来说,使用后台工作程序似乎是正确的答案。 但是,像先前的教程那样的教程专注于Windows Phone 7,在那里事情有些不同,例如Visual Studio 2012 Ultimate中的Windows Store模板没有C#模板可用于计划任务代理。
因此,我的问题是如何为Windows 8应用程序设置后台工作者以在应用程序本身未运行时执行实时磁贴更新?
2个回答

3

您可以在 这里 了解有关后台任务的信息; 您可以在 这里 了解有关TimeTrigger的信息,而在操作后台任务的OnCompleted方法中,我们可以设置LiveTile。

    void OnCompleted(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args)
    { 
      var tile = CreateNotification(String.Format(@"<tile>
      <visual>
        <binding template=""TileSquareText04"">
          <text id=""1"">{0}</text>
          <text id=""2""></text>
        </binding> 
        <binding template=""TileSquareText02"">
          <text id=""1"">{0}</text>
          <text id=""2""></text>
        </binding>  
      </visual>
    </tile>", DateTime.Now.ToString("hh:mm:ss")));
     TileUpdateManager.CreateTileUpdaterForApplication().Update(tile);
     }
    private TileNotification CreateNotification(string xml)
    {
        var xmlDocument = new XmlDocument();
        xmlDocument.LoadXml(xml);
        return new TileNotification(xmlDocument);
    }

1

请查看白皮书:背景任务介绍;结合您已经学习和研究的关于磁贴的知识,您应该能够整合出一些东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接