2016-04-25 156 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