在Windows Phone 8.1上运行频繁的后台任务

时间:2014-08-04 14:01:04

标签: c# windows-phone-8 windows-phone windows-phone-8.1 background-task

Windows Phone平台提供BackgroundTasks基础结构。我可以这样注册我的任务:

builder.TaskEntryPoint = TaskName;
var trigger = new TimeTrigger(15, false);

builder.SetTrigger(trigger);
builder.Register();

问题是,TimeTrigger最小间隔约为15分钟,这对我的应用来说非常大。我需要在后台每1-2分钟运行一次任务。是否可以在Windows Phone上使用?

2 个答案:

答案 0 :(得分:3)

不可能让BackgroundTasks以分钟为间隔运行。 正如你所说,最小间隔是15分钟。

这是一项操作系统限制,可防止开发人员构建电池耗尽应用程序。

您总是有一些解决方法,比如拥有PushNotificationTrigger,并设法每分钟向您的设备发送推送通知。 (我猜有些人设法使用ScheduledToastNotification),但我不会推荐它。

答案 1 :(得分:2)

使用官方API的AFAIK - 无法经常运行 TimeTrigger 。请注意,在WIndows Phone上,间隔更大(MSDN):

  

Windows有一个内置计时器,可以15分钟为间隔运行后台任务。请注意,在Windows Phone上,间隔为30分钟。

由于电池耗尽/限制,我怀疑这是可能的。也许您可以将应用程序保留在前台并禁用锁屏(通过使用 DisplayRequest )。

此外,您可以尝试运行计时器以及在BackgroundTask中获取叛逆。我没试过,肯定会有很多问题(CPU限制,内存和其他限制),我不确定这是不是不符合认证要求,当然也不能保证您的BackgroundTask不会被操作系统终止。