为什么TileUpdater.StartPeriodicUpdate的行为不符合预期?

时间:2013-03-29 15:55:10

标签: windows-store-apps live-tile

我有一个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参数的情况下调用override将立即运行(确实如此),然后另一个将在5分钟后运行。有谁知道为什么它立即更新,或者我如何确定它被推迟?

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

1 个答案:

答案 0 :(得分:1)

我在this page找到答案(粗体是我的重点):

  

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

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

对于第二部分,看起来它正在更新(当我在带有断点的localhost上运行时,断点最终被击中并刷新了它),我想我没等多久。

相关问题