我有一个 Windows 8 Metro 应用程序,它在每分钟刷新的动态磁贴上显示数据。
当 Metro 应用程序启动时,它会创建一个序列来进行磁贴更新。这完美地工作。
问题:
当我重新启动计算机时,地铁磁贴停止工作。相反,它会回到默认的 Metro 磁贴(应用名称左下图像中间)。
只需启动和停止 Metro 应用程序,我就可以让它再次工作。但我不希望这样做。
我实现了一个实现 IBackgroundTask 并实现 run 方法的类。
public void Run(IBackgroundTaskInstance taskInstance){
BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
TileScheduler.CreateSchedule();
deferral.Complete();
}
在 Metro 应用程序包清单中添加了声明“后台任务”并在指向此类的入口点下。我还注册了计时器和系统事件。
此类代码基本上调用了与第一次设置磁贴序列时主应用程序相同的代码路径,只是它被延迟包装。
问题 这是正确的道路吗(因为它似乎不起作用,所以我猜我的实现是错误的)?还是有更好的方法来做到这一点?