后台任务不在UWP中运行
问题描述:
我有一个UWP应用程序,我希望在后台执行某些操作时添加后台任务支持。 ,因为它是这里所说的我做的正是:https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-a-background-task后台任务不在UWP中运行
我有后台任务,并在我的包清单文件中一个单独的项目,我宣布,我的应用程序使用后台任务(但“定时器”的任务,因为我使用TimerTrigger )。代码:
BackgroundTaskBuilder backgroundTaskBuilder = new BackgroundTaskBuilder { Name = "NotificationUpdater", TaskEntryPoint = "NamespaceOfMyBackgroundTaskInterfaceImplementation.BackgroundTask"};
backgroundTaskBuilder.SetTrigger(new TimeTrigger(15, false));
BackgroundTaskRegistration backgroundTaskRegistration = backgroundTaskBuilder.Register();
现在,当我启动我的应用程序(通过Visual Studio中),并使用生命周期事件下拉菜单,暂停我的应用程序,它永远不会执行在BackgroundTask类的Run()
方法(实施IBackgroundTask接口)。 代码BackgroundTask类中:
namespace NamespaceOfMyBackgroundTaskInterfaceImplementation
{
public sealed class BackgroundTask : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
//Code to run in the background
}
}
}
答
当它在谈话横空出世,这个问题是项目类型的错误声明。 In应该是一个Windows运行时组件。
对于追随者,请看看at this answer,其中描述了步骤。它回答于Silverlight 8.1,但过程和步骤与WinRT和UWP相同。
您是否在manifest文件中声明了一个入口点,在您的主项目中添加了一个引用,并使您的BTask成为运行时组件?你也可以看看[在这里回答的步骤](http://stackoverflow.com/a/24076237/2681948)。 – Romasz
是的,我已经在清单文件中声明了入口点,在我的应用程序项目中添加了一个引用。自从我开发UWP应用程序以来,我的BakgroundTask就是通用Windows类库。 – tavier
啊,我认为这就是我做错了。 – tavier