Windows平台提供BackgroundTasks基础设施。我可以这样注册我的任务:
builder.TaskEntryPoint = TaskName;
var trigger = new TimeTrigger(15, false);
builder.SetTrigger(trigger);
builder.Register();问题是,TimeTrigger的最小间隔是15分钟,对于我的应用程序来说,这是相当大的。我需要在后台每1-2分钟执行一次任务。在Windows上有可能吗?
发布于 2014-08-04 14:47:54
BackgroundTasks不可能在一分钟间隔的基础上运行。正如你已经说过的,最小间隔是15分钟。
这是一个操作系统限制,以防止开发人员构建耗尽电池的应用程序。
您总是有一些解决办法,比如有一个PushNotificationTrigger,并设法每分钟向设备发送一个推送通知。(我想有些人用ScheduledToastNotification就能做到这一点),但我不想再提了。
发布于 2014-08-04 14:48:21
使用官方API的AFAIK -不可能这么频繁地运行TimeTrigger。请注意,在WIndows电话上,间隔甚至更大(MSDN):
Windows有内置计时器,每隔15分钟运行后台任务.请注意,在Windows上,间隔为30分钟。
我怀疑这是可能的,因为电池的条件/限制。也许你可以把你的应用程序留在前台,禁用锁屏(通过使用DisplayRequest)。
此外,您还可以尝试运行一个计时器,同时在BackgroundTask中获得延迟。我没有尝试过,肯定会有很多问题(CPU限制、内存和其他限制),我不确定这是否违反了认证要求,当然也不能保证您的BackgroundTask不会被操作系统终止。
https://stackoverflow.com/questions/25120511
复制相似问题