gpt4 book ai didi

c# - 时间触发器不触发后台任务 UWP

转载 作者:行者123 更新时间:2023-11-30 20:19:32 24 4
gpt4 key购买 nike

我和这里的这个人有同样的问题:UWP Timetrigger not working但我无法评论这个问题,因为我的声誉不够高,所以我正在创建一个新问题。

正如我所说,我有同样的问题。我注册了后台任务,但没有任何反应。我的后台任务位于一个单独的项目(运行时组件)中。所以这不是问题。这是我注册任务的方法:

public static BackgroundTaskRegistration Register(string name, string taskEntryPoint, IBackgroundTrigger trigger, IBackgroundCondition condition)
{
var foundTask = BackgroundTaskRegistration.AllTasks.FirstOrDefault(x => x.Value.Name == name);
if (foundTask.Value != null)
return (BackgroundTaskRegistration)foundTask.Value;

var builder = new BackgroundTaskBuilder();
builder.Name = name;
builder.TaskEntryPoint = taskEntryPoint;
builder.SetTrigger(trigger);
if (condition != null)
builder.AddCondition(condition);

return builder.Register();
}

我是这样调用它的:

BackgroundTaskRegister.Register(nameof(NotificationTask), $"Epguides.Background.{_backgroundTaskName}", new TimeTrigger(30, true), null);

当我调试我的应用程序并使用 Visual Studio 中的生命周期事件来测试我的后台任务时,一切正常。所以问题不是任务。

当我检查 BackgroundTaskRegistration 结果时,我发现属性触发器为空。在 MSDN page 上BackgroundTaskRegistration.Trigger 的内容如下

This is not intended for use in your code. For all unsupported trigger types, the value returned by this property is null.

据我了解,TimeTrigger 是不受支持的触发器类型,因为 Trigger 为空。

这是 list 文件中声明的内容 Declarations

有没有人可以解释为什么它不起作用。我使用的是 10.0.10586 版本

最佳答案

  1. 您可以使用 powershell 确认您的任务是否已注册。使用管理权限打开 powershell,然后运行“Get-AppBackgroundTask”。列出所有已注册的任务。如果您无法从列表中找到您的任务,则注册时出现了一些问题。

  2. 您是否将后台任务项目添加为对主应用的引用?

  3. 您调用了 BackgroundExecutionManager.RequestAccessAsync() 了吗?您应该在注册之前从 UI 线程调用它。

enter image description here

  1. 我在商店中有一个带有时间触发器的后台任务示例应用程序。它对店面和搜索是隐藏的,但您可以从以下链接下载它:

https://www.microsoft.com/store/p/ddlgbgtasktrial/9nblggh4s785

此应用注册一个简单的后台任务,间隔时间为 15 分钟。此任务只是将调试消息输出到日志文件。该应用程序显示日志。如果运行良好,您可以看到大约 15 分钟间隔的调试输出。

我已确认该应用适用于 Win10 桌面版 10586.494 和移动版 14393.0。

关于c# - 时间触发器不触发后台任务 UWP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38526948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com