我有一个依赖于后台任务的UWP应用。因此,当用户使用设备时,该任务应该一直运行。我尝试使用以下触发器注册它:
ApplicationTrigger _AppTrigger = new ApplicationTrigger();
builderInApp.SetTrigger(_AppTrigger);
builderSession.SetTrigger(new SystemTrigger(SystemTriggerType.SessionConnected, false));
builderPower.SetTrigger(new SystemTrigger(SystemTriggerType.PowerStateChange, false));
但是似乎有时任务没有开始。它在重新启动或关闭后90%的时间开始,在节能模式后继续100%的时间,如果系统只是空闲,则100%的时间工作,在休眠状态下大约50%的时间工作,只有在我这样做时才很少节能然后休眠而无需解锁。
我可以做些什么使它更可靠吗?我已经添加了<rescap:Capability Name="extendedBackgroundTaskTime"/>
并启用了User(而不是Windows)的用户管理。
我应该添加更多触发器吗?哪个?还有另一种方法来获得更好的可靠性吗?我不介意使用.Net组件是否有帮助,但是我的后台任务确实必须是UWP。
我对此有其他疑问:
如果我使用触发器a触发了背景,然后再次触发了火灾,该过程是否再次启动,被取消并重新启动,或者什么都没有发生?
同样的问题,是否我已经使用触发器a触发了背景,并且触发了b触发,该过程是否第二次启动,被取消并重新启动,或者什么都没有发生?
编辑:我尝试使用StartupTask
,但是在休眠状态下无法触发它。