2017-03-20 109 views
0

我想使用TimeTrigger每15分钟运行一个后台任务,但由于某种原因它不会触发。尝试了生命周期事件方法,它工作。检查任务是否在电源外壳中注册。还有什么可能是错的?有一两件事,我发现奇怪的是,当我运行UWP TimeTrigger不会触发

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

我只是尝试部署到我的Lumia 950XL,它的工作。但奇怪的是它仍然无法在Windows 10桌面上运行。 – dreamfly

+0

重新启动后它工作。 – dreamfly

回答

0

你好如果你被允许的,因此应该工作正常,但仔细检查一些点我提以下: 1 - 确保您的后台任务项目成为Windows运行时组件项目而不是类库或其他人。

2-确保您的后台任务项目现在是您要调用它的项目中的参考。

3,确保你定义你的后台任务,它的入口点和它的输入AppxManifest

4,如果所有我所提到的事情是OK所以在你的C#代码调用这个您的后台任务的切入点方式,有时它会解决你的问题。

BackgroundTaskBuilder build = new BackgroundTaskBuilder(); 
build.TaskEntryPoint = typeof(BGTaskRTComponentProj.BGTaskClass).FullName; 
+0

尝试所有仍然无法在桌面上工作,但在手机上工作(Lumia 950XL)。 – dreamfly

+0

因此,如果您的项目是开源的,请发送部分代码或分享您的源代码,以查看发生了什么问题。 另外,我建议你在后台任务项目的Run方法中放置一个断点,并使视觉工作室不显示任何警告弹出给你 –

+0

最后得到它在移动和桌面上的工作。应该知道任何窗口的东西...重新启动救援!是的,没有改变程序和重新启动工程! – dreamfly