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