使用C#的Windows 8 Live Tile后台代理

我试图在Windows 8上经常更新活动磁贴,即使应用本身未运行,也需要这样做. this MSDN page上列出的所有通知选项均不合适,我想轮询不适合列出的通知样式的系统信息,例如CPU temp等.我在StackOverflow的其他地方查看过...

我试图在Windows 8上经常更新活动磁贴,即使应用本身未运行,也需要这样做. this MSDN page上列出的所有通知选项均不合适,我想轮询不适合列出的通知样式的系统信息,例如CPU temp等.

我在StackOverflow的其他地方查看过,也遇到过类似的问题,但对于Windows Phone 7 using background workers而言.使用后台工作程序似乎也是我的正确答案.但是,像上一个教程一样,教程侧重于Windows Phone 7,但情况有所不同,例如,Visual Studio 2012 Ultimate中的Windows应用商店模板没有计划任务代理的C#模板.

所以我的问题是,当应用程序本身不运行时,我们如何为Windows 8应用程序设置后台工作程序以执行实时磁贴更新?

解决方法:

您可以阅读有关后台任务here的内容;阅读有关TimeTrigger here的信息,并在操作后台任务的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);
    }

本文标题为:使用C#的Windows 8 Live Tile后台代理

基础教程推荐