[英]Register Background Task Once
我有一个后台任务,当用户使用以下代码进入应用程序时会注册该任务:
await BackgroundExecutionManager.RequestAccessAsync();
BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder { Name = "First Task", TaskEntryPoint = "myTask.FirstTask" };
taskBuilder.SetTrigger(new TimeTrigger(15, false));
BackgroundTaskRegistration myFirstTask = taskBuilder.Register();
它可以正常运行,并且可以注册任务,但是每次打开应用程序后,它都会继续重新注册。 有没有什么办法,使用if
,例如,如果一个任务是记录的检测,因此只能注册一次任务,而不是一遍又一遍地重复同样的过程?
通过单击“生命周期事件”发现了此问题,如果有帮助,它将揭示大约15个“第一任务”实例。
使用BackgroundTaskRegistration.AllTasks
集合检查您的任务是否已经注册:
if (BackgroundTaskRegistration.AllTasks.Values.Any(b => b.Name == "First Task"))
{
// Already registered
}
您可以为此使用隔离的存储设置。 当应用程序启动时,查找一个孤立的存储设置(如果该设置不存在),注册后台任务并创建设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.