2

我有一个 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 分钟,但这超出了误差范围,我没有得到任何更新。

4

1 回答 1

1

我在此页面上找到了答案(粗体是我的重点):

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

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

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

于 2013-03-30T15:44:01.170 回答