【问题标题】:Why is TileUpdater.StartPeriodicUpdate not behaving as expected?为什么 TileUpdater.StartPeriodicUpdate 没有按预期运行?
【发布时间】:2013-03-30 23:44:01
【问题描述】:

我有一个 Windows 商店应用程序,我正在设置它以定期更新磁贴。本来我是设置成StartPeriodicUpdate(Uri, PeriodicUpdateRecurrence),但是好像没有更新,而且因为最短重复时间是HalfHour,所以我想用StartPeriodicUpdate(Uri, DateTime, PeriodicUpdateRecurrence),把startTime设置成DateTimeOffset.Now.AddMinutes(5)这样就可以等5更新前几分钟,以使测试更容易。代码:

public void UpdateLiveTile()
{
        LiveTileUpdater.Clear();
        var uri = TILE_UPDATE_URI; // example
        var start = DateTimeOffset.Now.AddMinutes(5);
        LiveTileUpdater.StartPeriodicUpdate(uri, start, PeriodicUpdateRecurrence.HalfHour);
}

但是,当我运行它时,磁贴会立即更新,而不是从调用它开始 5 分钟后更新。我认为在没有 startDate 参数的情况下调用覆盖会立即运行(确实如此),然后另一个会在 5 分钟后运行。有谁知道为什么它会立即更新,或者我如何确保它会延迟?

编辑:此外,如果有人知道为什么也没有定期更新,那将是一个很大的帮助。服务器肯定响应正确,因为第一次更新效果很好,但它永远不会改变。文档表明开始时间和定期间隔都可能延迟最多 15 分钟,但这已经超出了误差范围,而且我没有得到任何更新。

【问题讨论】:

    标签: windows-store-apps live-tile


    【解决方案1】:

    我在this page 上找到了答案(我强调的是粗体):

    当您调用其中一种方法时,调用中指定的 URI 会立即轮询,并且磁贴或徽章会使用接收到的内容进行更新。在此初始轮询之后,Windows 将继续按请求的时间间隔提供更新。轮询一直持续到您明确停止为止...

    我认为 5 分钟刷新不起作用的原因是它立即轮询,然后不会比间隔(30 分钟)更早再次轮询,但它会在 30 分钟后刷新 then 而不是现在。最后一部分是猜测,但上面的段落说明了为什么它会立即更新。

    对于第二部分,它看起来正在更新(当我在 localhost 上运行一个断点时,断点最终被命中并刷新了磁贴),我想我只是没有等待足够长的时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多