Windows Phone平台提供BackgroundTasks基础结构。我可以这样注册我的任务:
builder.TaskEntryPoint = TaskName;
var trigger = new TimeTrigger(15, false);
builder.SetTrigger(trigger);
builder.Register();
问题是,TimeTrigger最小间隔约为15分钟,这对我的应用来说非常大。我需要在后台每1-2分钟运行一次任务。是否可以在Windows Phone上使用?
答案 0 :(得分:3)
不可能让BackgroundTasks以分钟为间隔运行。 正如你所说,最小间隔是15分钟。
这是一项操作系统限制,可防止开发人员构建电池耗尽应用程序。
您总是有一些解决方法,比如拥有PushNotificationTrigger,并设法每分钟向您的设备发送推送通知。 (我猜有些人设法使用ScheduledToastNotification
),但我不会推荐它。
答案 1 :(得分:2)
使用官方API的AFAIK - 无法经常运行 TimeTrigger 。请注意,在WIndows Phone上,间隔更大(MSDN):
Windows有一个内置计时器,可以15分钟为间隔运行后台任务。请注意,在Windows Phone上,间隔为30分钟。
由于电池耗尽/限制,我怀疑这是可能的。也许您可以将应用程序保留在前台并禁用锁屏(通过使用 DisplayRequest )。
此外,您可以尝试运行计时器以及在BackgroundTask中获取叛逆。我没试过,肯定会有很多问题(CPU限制,内存和其他限制),我不确定这是不是不符合认证要求,当然也不能保证您的BackgroundTask不会被操作系统终止。