3

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

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

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

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

4

2 回答 2

3

不可能有以分钟间隔运行的 BackgroundTask。正如你所说,最小间隔是 15 分钟。

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

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

于 2014-08-04T14:47:54.670 回答
2

使用官方 API 的 AFAIK - 不可能如此频繁地运行TimeTrigger。请注意,在 WIndows Phone 上,间隔更大(MSDN):

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

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

您也可以尝试在 BackgroundTask 中运行计时器并获得延迟。我没有尝试过,肯定会有很多问题(CPU限制,内存和其他限制),我不确定这是否不符合认证要求,当然它不能保证你的BackgroundTask不会由操作系统终止。

于 2014-08-04T14:48:21.283 回答