我正在尝试使用TimeTrigger每15分钟运行一次后台任务但由于某种原因它不会触发。尝试了生命周期事件方法并且它起作用了。检查任务是否已在电源外壳中注册。还有什么可能是错的?我发现奇怪的一件事是当我跑步时
var allowed = await BackgroundExecutionManager.RequestAccessAsync();
我找回BackgroundAccessStatus.AllowedSubjectToSystemPolicy而不是
BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity 要么 BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity
这是问题吗?什么是BackgroundAccessStatus.AllowedSubjectToSystemPolicy?
更新:
不推荐使用AllowedMayUseActiveRealTimeConnectivity和AllowedWithAlwaysOnRealTimeConnectivity。
重新启动使其工作,包括桌面和移动设备。显然,后台任务流程很容易崩溃。
还可以使用它在桌面上进行调试:
https://docs.microsoft.com/en-us/windows/uwp/launch-resume/debug-a-background-task
答案 0 :(得分:0)
嗨,如果你得到允许所以它应该可以正常工作,但请仔细检查我在下面提到的一些要点: 1 - 确保您的后台任务项目是Windows运行时组件项目,而不是类库或其他项目。
2 - 确保您的后台任务项目现在是您要调用它的项目中的参考。
3 - 确保您定义了后台任务,它的入口点以及它在AppxManifest中的类型
4 - 如果我提到的所有内容都没问题,那么在C#代码中以这种方式调用后台任务入口点,有时它会解决您的问题。
BackgroundTaskBuilder build = new BackgroundTaskBuilder();
build.TaskEntryPoint = typeof(BGTaskRTComponentProj.BGTaskClass).FullName;