我目前正在开发一个应用程序,后台任务应该在用户设置的时间开启。例如,用户选择'01:45PM',该应用正在计算从现在到该时间的分钟数,并且使用时间触发器注册后台任务。不幸的是,背景任务根本没有开火。有时它在我启动计算机后才被解雇。我很感激任何意见,因为我一个星期以来无法解决这个问题。UWP后台任务计时器没有开火
我已经调试通过VisualStudio启动它的后台任务,所以问题不在BackgroundTask.cs文件中。
这里是我的代码:
注册后台任务:
//I set the time to 15 minutes to see if this would work. It didn't... var trigger = new TimeTrigger(15, true); BackgroundTaskHelper.RegisterBackgroundTask("BackgroundTask.BackgroundTask", "BackgroundTask", trigger, null);
方法注册后台任务:
public static async void RegisterBackgroundTask(string taskEntryPoint, string taskName, IBackgroundTrigger trigger, IBackgroundCondition condition) { foreach (var cur in BackgroundTaskRegistration.AllTasks) { if (cur.Value.Name == taskName) { cur.Value.Unregister(true); } } var builder = new BackgroundTaskBuilder(); builder.Name = taskName; builder.TaskEntryPoint = taskEntryPoint; builder.SetTrigger(trigger); if (condition != null) { builder.AddCondition(condition); } await BackgroundExecutionManager.RequestAccessAsync(); var task = builder.Register(); }
Package.appxmanifest Package.appxmanifest, Image
感谢您的帮助!
可能有很多问题。我经常想到两件很常见的问题:后台任务运行多长时间(超过30秒是标准BGTask的问题),其次是:此任务的CPU使用率有多高,CPU的使用率有多高用法,什么时候应该运行?这也许是有帮助的:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/debug-a-background-task – user3079834
目前它只是发送一个Toast通知,所以持续时间少于30秒,CPU使用率很低。 – MadMax
并且它在烧制时的CPU使用率?因为有时任务不会触发,如果主机的CPU使用率很高。 – user3079834