在UWP中的流程后台任务中

时间:2017-04-21 14:46:11

标签: uwp uwp-xaml windows-community-toolkit

在我的UWP项目中,我正在使用进程后台任务。在不同的情况下,任务通过计时器触发每15分钟运行一次:

案例1:当应用程序运行时 - 在这种情况下,所有工作都可以正常运行。

案例2:申请关闭时 - 只要申请仍然关闭,就不会发生任何事情。

请帮我解决这个问题?

代码: //这是我的BackgroundTask.Run方法

var deferral = taskInstance.GetDeferral();
if (!IsApplicationClosed)
{
      //When application is running
      await Dispatcher.RunAsync(WCoreDispatcherPriority.Normal, () => {
         UpdateUI();
      });
}
else
{
    UpdateDataStorage();
}
deferral.Complete();

//这是我的OnBackgroundActivated方法

base.OnBackgroundActivated(args);

var deferral = args.TaskInstance.GetDeferral();

switch (args.TaskInstance.Task.Name)
{
  case "MyBackgroundTask":
  {
      var task = new MyBackgroundTask();
      task.Run(args.TaskInstance);

  } break;
};

deferral.Complete();

感谢。

1 个答案:

答案 0 :(得分:0)

我认为,因为您使用的是进程内后台任务,所以后台任务和您的应用程序在同一进程上运行,因此当您关闭应用程序时,后台任务将关闭,如果您使用进程外后台任务,则可能解决此问题,此链接可帮助您构建进程外后台任务。 https://docs.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-a-background-task