我正在开发UWP应用程序,如果当前的应用程序状态处于活动状态或暂停状态,我需要每隔15秒发送一次我的位置 . 我尝试了两种不同的方法:
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
{
await UpdateMethod(data);
});
和
var taskResult = await backgroundTrigger.RequestAsync(taskParameters);
- ExtendedExecution
当应用程序处于活动状态时
-
正常工作
应用程序暂停时 -
调度程序不可用
-
ExtendedExecution后台任务应用程序触发器
-
当应用处于活动状态时,它可以正常工作
-
应用程序暂停时我在调用上面的方法后继续得到ApplicationTriggerResult.DisabledByPolicy
1 回答
我在我这边测试了ExtendedExecution官方样本,如果已成功请求ExtendedExecutionSession,
Dispatcher
在暂停应用程序后运行良好 . 我的环境是windows 10 build 14393,我在PC设备上测试了这个功能 .根据您的要求,建议使用
LocationTracking
ExtendedExecutionReason . 官方样本的scenario 3实现了与您想要的功能相同的功能,您可以参考 .根据官方样本,
ExtendExcution
已经满足您的要求 . 对于application trigger,据我所知,它不能在UI线程中请求 .此外,如果没有为设备连接电源,
ExtendExcution
可以在暂停操作后让您的应用运行10分钟 . 更多细节请参考this video .