2016-04-25 3 views
0

Ich habe eine UWP-Anwendung, wo ich Hintergrundaufgabenunterstützung für bestimmte Dinge hinzufügen möchten, während meine Anwendung im Hintergrund ist. ich genau mache, wie es hier genannt wird: https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-a-background-taskHintergrund Task nicht in UWP ausgeführt

habe ich ein eigenes Projekt für Hintergrundaufgaben und in meinem Paket Manifest-Datei Ich habe erklärt, dass meine app Hintergrundaufgaben verwendet (aber „Timer“ Aufgabe, da ich TimerTrigger bin mit). Code:

BackgroundTaskBuilder backgroundTaskBuilder = new BackgroundTaskBuilder { Name = "NotificationUpdater", TaskEntryPoint = "NamespaceOfMyBackgroundTaskInterfaceImplementation.BackgroundTask"}; 

backgroundTaskBuilder.SetTrigger(new TimeTrigger(15, false)); 

BackgroundTaskRegistration backgroundTaskRegistration = backgroundTaskBuilder.Register(); 

Nun, wenn ich meine app starten (über Visual Studio), und verwenden Sie Lifecycle Events Dropdown meine App zu suspendieren, führt sie nie die Run() Methode in der Klasse Background (Implementierung von IBackgroundTask Schnittstelle). -Code innerhalb Background Klasse:

namespace NamespaceOfMyBackgroundTaskInterfaceImplementation 
{ 
    public sealed class BackgroundTask : IBackgroundTask 
    { 
     public async void Run(IBackgroundTaskInstance taskInstance) 
     { 
      //Code to run in the background 
     } 
    } 
} 
+0

Haben Sie einen Einstiegspunkt in der Manifestdatei deklariert, eine Referenz in Ihrem Hauptprojekt hinzugefügt und Ihre BTask zu einer Laufzeitkomponente gemacht? Sie können auch einen Blick darauf werfen (http://stackoverflow.com/a/24076237/2681948). – Romasz

+0

Ja, ich habe den Einstiegspunkt in der Manifestdatei deklariert, eine Referenz in meinem App-Projekt hinzugefügt. Meine BakgroundTask ist eine universelle Windows-Klassenbibliothek, da ich gerade eine UWP-App entwickle. – tavier

+0

Ah, ich denke, das mache ich falsch. – tavier

Antwort

1

Wie sich im Gespräch heraus, das Problem in der falschen Deklaration von Projekttyp war. In sollte eine Windows Runtime Component sein.

Für die Anhänger, werfen Sie bitte einen Blick at this answer, die die Schritte beschreibt. Es antwortet auf Silverlight 8.1, aber der Prozess und die Schritte sind die gleichen in WinRT und UWP.

+0

Hey @ Romasz wollte nur überprüfen, ob du irgendwelche Gedanken zu diesem hier hast: http://stackoverflow.com/questions/36837912/background-agent-in-uwp – tavier

+0

@AshishAgrawal Nein - keine Gedanken dazu. Können Sie sagen, woher Sie diese Informationen haben? – Romasz

+0

Ich habe das irgendwie herausgefunden, indem ich einige Validierungen in beiden Plattformen durchgeführt habe. – tavier