0

在我的 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();

谢谢。

4

1 回答 1

0

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

于 2020-09-29T16:34:23.263 回答