C# w8 metro live互动程序在计算机重新启动后不会显示动画

C# w8 metro live互动程序在计算机重新启动后不会显示动画,c#,microsoft-metro,live-tile,C#,Microsoft Metro,Live Tile,我有一个windows 8 metro应用程序,它在每分钟刷新一次的活动磁贴上显示数据 当metro应用程序启动时,它会创建一个序列来进行磁贴更新。这很好用 问题: 当我重新启动计算机时,metro磁贴停止工作。相反,它会返回默认的metro磁贴(应用程序名称左下角图像中间) 我可以通过简单地启动和停止metro应用程序让它再次工作。但我不想这样做 我实现了一个类,该类实现了IBackgroundTask并实现了run方法 public void Run(IBackgroundTaskInsta

我有一个windows 8 metro应用程序,它在每分钟刷新一次的活动磁贴上显示数据

当metro应用程序启动时,它会创建一个序列来进行磁贴更新。这很好用

问题:

当我重新启动计算机时,metro磁贴停止工作。相反,它会返回默认的metro磁贴(应用程序名称左下角图像中间)

我可以通过简单地启动和停止metro应用程序让它再次工作。但我不想这样做

我实现了一个类,该类实现了IBackgroundTask并实现了run方法

public void Run(IBackgroundTaskInstance taskInstance){
    BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
    TileScheduler.CreateSchedule();
    deferral.Complete();
}
在metro应用程序包清单中添加了声明“后台任务”,并在入口点下指向此类。我还注册了定时器和系统事件

这个类代码基本上调用主应用程序在第一次设置平铺序列时所做的相同代码路径,只是它被延迟包装

问题
这是正确的路径吗(因为它似乎不起作用,所以我想我的实现是错误的)?还是有更好的方法

这可能只是一个“你不能用模拟程序做那件事”的例子。我假设您是通过在VisualStudio中使用开发者许可证运行应用程序来实现这一点的。我对tiles更新工作原理的理解(如果我错了,请纠正我),但是tiles会轮询一个网站以获得下一个要显示的项目。由于您已跳出框,任何visual studio启动的服务(如ASP.net主机等)都将无法运行,因此互动程序将无法获得新的更新


如果您想在部署到应用商店之前测试功能,我建议您在项目中将web服务部署到IIS,而不是部署到测试环境,并在启动时将IIS配置为托管该服务。

嘿,您所说的似乎合乎逻辑,我不使用IIS服务,但将很快运行发布检查,以确定这是否是调试环境问题。非常感谢您的帮助哦,您可以尝试的另一件事是使用模拟器运行您的应用程序。我注意到,如果我在模拟器中做关闭应用程序的手势,VisualStudio会完成调试会话,但我的WCF服务至少会保持活动状态。当我回到模拟桌面时,我可以再次启动我的应用程序,这就像是一个新的会话,但VisualStudio不知道我还在玩我的项目。例如,可以很好地看到数据正在被持久化。如果你关闭应用程序,再次启动它,然后返回“开始”菜单,你可以看到你的互动程序在“重新启动”时是否工作。该死,我以为这会工作,但模拟器不允许我添加后台任务。不知道为什么微软会限制这一点,因为这在RC之前是很好的。“WinRT信息:在模拟器中运行此应用程序时,您不能更改后台任务和锁定屏幕权限。”我们很快就会发布测试版,我想我只需要为后台任务部分的错误花费更多时间:D