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