首页 文章

UWP - 后台任务 - 短间隔

提问于
浏览
0

我正在开发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 回答

  • 1

    当应用程序暂停时Dispatcher不可用

    我在我这边测试了ExtendedExecution官方样本,如果已成功请求ExtendedExecutionSessionDispatcher 在暂停应用程序后运行良好 . 我的环境是windows 10 build 14393,我在PC设备上测试了这个功能 .

    我需要每隔15秒发送一次我的位置

    根据您的要求,建议使用 LocationTracking ExtendedExecutionReason . 官方样本的scenario 3实现了与您想要的功能相同的功能,您可以参考 .

    当应用程序暂停时,我在调用上面的方法后继续获取ApplicationTriggerResult.DisabledByPolicy

    根据官方样本, ExtendExcution 已经满足您的要求 . 对于application trigger,据我所知,它不能在UI线程中请求 .

    此外,如果没有为设备连接电源, ExtendExcution 可以在暂停操作后让您的应用运行10分钟 . 更多细节请参考this video .

相关问题