【问题标题】:How can I update the live tile while the program is not running?如何在程序未运行时更新动态磁贴?
【发布时间】:2012-03-30 21:23:18
【问题描述】:

这几天我一直在苦苦挣扎。我正在制作一个本地天气应用程序,我希望磁贴显示图像(天气图标)和文本(地点名称 + 温度)。

在代码中你可以这样做:

ShellTile firstTile = ShellTile.ActiveTiles.First();
var newData = new StandardTileData()
{
    Title = "Placename, 50F",
    BackgroundImage = new Uri("background.png", UriKind.Relative),
};

// Update the default tile
firstTile.Update(newData);

但是当应用程序没有运行时你是如何做到这一点的,所以我不必打开应用程序来更新磁贴,而是它自己做的。

【问题讨论】:

  • 如果您的应用程序未运行,您将无法更新磁贴。

标签: c# windows-phone-7


【解决方案1】:

您需要设置一个 BackgroundAgent 来执行此操作。 Jeff Blankenburg 在http://www.jeffblankenburg.com/2011/11/25/31-days-of-mango-day-25-background-agents/ 上有一个很好的教程@

几个注意事项:

  • 你无法控制它何时运行。

  • 您的图片需要在外部托管(例如,不是应用程序的资源/内容)。 Ku6opr 表示可以通过代码生成图像并作为替代方案放入/Shared/ShellContent

  • 图片必须为 173x173 像素

  • 图像大小必须小于 85K。

编辑:固定像素大小。是从记忆中消失的,显然那些碎片是油炸的

【讨论】:

  • > “您的图像需要在外部托管(例如,不是应用程序的资源/内容)。”其实你可以通过代码生成图片,然后放到/Shared/ShellContent/文件夹中,用图片制作Tile
  • > "图片必须是 179x179"。实际上 173x173 是瓷砖的正确尺寸
  • > "图像大小必须小于 85K"。实际上,这是对Tile Push Notifications 大小或调度程序更新的外部图块的限制。来自Background Agent,您无需考虑图块大小
  • 对不起@Ku6opr,但您的最后一项不正确。我遇到了大于 85K 的图像的主要问题。他们就是不会出现。
  • 这就是我想要的!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多