2016-04-25 175 views
0

我有一个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 
     } 
    } 
} 
+0

您是否在manifest文件中声明了一个入口点,在您的主项目中添加了一个引用,并使您的BTask成为运行时组件?你也可以看看[在这里回答的步骤](http://stackoverflow.com/a/24076237/2681948)。 – Romasz

+0

是的,我已经在清单文件中声明了入口点,在我的应用程序项目中添加了一个引用。自从我开发UWP应用程序以来,我的BakgroundTask就是通用Windows类库。 – tavier

+0

啊,我认为这就是我做错了。 – tavier

回答

1

当它在谈话横空出世,这个问题是项目类型的错误声明。 In应该是一个Windows运行时组件

对于追随者,请看看at this answer,其中描述了步骤。它回答于Silverlight 8.1,但过程和步骤与WinRTUWP相同。

+0

嘿@罗马兹只是想检查你是否有任何想法在这一个这里:http://stackoverflow.com/questions/36837912/background-agent-in-uwp – tavier

+0

@AshishAgrawal否 - 没有想法。你能否从你有这些信息的地方说出来? – Romasz

+0

我有点想通过在两个平台上运行一些验证。 – tavier