注册后台任务:
public sealed class Task : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
//logic, send http get request, connect to db
deferral.Complete();
}
}
后台任务在Windows运行时组件中创建为一个单独的类:
catch {}
当是时候执行任务时 - 它可能会随机运行次数(1 - 15次)然后自发终止而不再启动,解决此问题需要重新注册任务。可能是什么原因?
当我想要运行任务时,VS显示此错误:
答案 0 :(得分:2)
在Windows Phone上,定期后台任务以至少30分钟的间隔执行。
Windows有一个内置计时器,可以15分钟为间隔运行后台任务。 请注意,在Windows Phone上,间隔时间为30分钟。
(资料来源:https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977059.aspx?f=255&MSPPError=-2147217396)
如果我是你,我会将时间间隔更改为更安全的时间段(例如60分钟) - 您可以随时尝试更小的间隔。并查看oneShot
标记,在您的情况下设置为true
。将其设置为false
以使您的任务不止一次运行。
此外,您的例外看起来并不健康。你说它甚至发生在后台任务是空的 - 你应该解决这个问题,只是为了安全。
我建议您使用Visual Studio中的生命周期功能多次手动启动和调试backgorund任务。也许还有其他因素会导致你的任务死亡。
但首先检查一下间隔。