Windows Phone 8.1频繁运行后台任务

本文关键字:运行 后台任务 Phone Windows | 更新日期: 2023-09-27 18:16:22

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

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

问题是,TimeTrigger的最小间隔是~15分钟,这对于我的应用程序来说是相当大的。我需要有每1-2分钟在后台运行的任务。这在Windows Phone上可行吗?

Windows Phone 8.1频繁运行后台任务

不可能让BackgroundTasks每隔一分钟运行一次。正如你已经说过的,最小间隔是15分钟。

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

你总是有一些变通办法,比如有一个PushNotificationTrigger,并设法每分钟向你的设备发送一个推送通知。(我猜有些人设法这样做与ScheduledToastNotification),但我不推荐它。

有了官方的API -不可能经常运行TimeTrigger。请注意,在WIndows Phone上,间隔甚至更大(MSDN):

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

由于电池消耗/限制,我怀疑这是可能的。也许你可以离开你的应用程序在前台和禁用锁屏(通过使用DisplayRequest)。

你也可以尝试在后台任务中运行一个计时器来获得延迟。我没有尝试过,肯定会有很多问题(CPU限制,内存和其他限制),我不确定这是否不违反认证要求,当然它不能保证你的后台任务不会被操作系统终止。