Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält eine Übersicht über die Verwendung von Hintergrundaufgaben und beschreibt das Erstellen einer neuen Hintergrundaufgabe in einer WinUI 3-App. Informationen zum Migrieren Ihrer UWP-Apps mit Hintergrundaufgaben zu WinUI finden Sie in der Migrationsstrategie für Hintergrundaufgaben im Windows App SDK.
BackgroundTaskBuilder im Windows App SDK
Hintergrundaufgaben sind App-Komponenten, die ohne Benutzeroberfläche im Hintergrund ausgeführt werden. Sie können Aktionen wie das Herunterladen von Dateien, das Synchronisieren von Daten, das Senden von Benachrichtigungen oder das Aktualisieren von Kacheln ausführen. Sie können durch verschiedene Ereignisse ausgelöst werden, z. B. Zeit, Systemänderungen, Benutzeraktionen oder Pushbenachrichtigungen. Diese Aufgaben können ausgeführt werden, wenn der entsprechende Trigger auch dann auftritt, wenn die App nicht ausgeführt wird.
Die Windows-Runtime (WinRT) BackgroundTaskBuilder wurde für UWP-Anwendungen entwickelt, und viele der Hintergrundaufgabentrigger werden für voll vertrauenswürdige COM-Komponenten nicht unterstützt. Sie werden nur unterstützt, wenn sie bei WinRT-Komponenten registriert sind, die mit einem backgroundtaskhost Prozess gestartet werden. Aus diesem Grund können Windows App SDK-Desktopanwendungen die voll vertrauenswürdigen COM-Komponenten nicht direkt registrieren, damit sie mit den Auslösern für Hintergrundaufgaben gestartet werden. Sie benötigen einen Workaround, um die WinRT-Komponenten in das Projekt einzubinden. Die BackgroundTaskBuilder in der Windows App SDK-API vermeidet diese Problemumgehung, sodass WinUI 3 und andere Desktopanwendungen, die Windows App SDK verwenden, die voll vertrauenswürdigen COM-Komponenten direkt mit Hintergrundaufgaben registrieren können.
Hintergrundaufgabe registrieren
Im folgenden Beispiel wird eine Hintergrundaufgabe für eine voll vertrauenswürdige COM-Komponente mithilfe des Windows App SDK BackgroundTaskBuilder registriert. Weitere Informationen finden Sie im Leitfaden für die Migrationsstrategie für Hintergrundaufgaben .
Der C++-Code zum Erstellen und Registrieren einer Hintergrundaufgabe lautet wie folgt:
//Using the Windows App SDK API for BackgroundTaskBuilder
winrt::Microsoft::Windows::ApplicationModel::Background::BackgroundTaskBuilder builder;
SystemTrigger trigger = SystemTrigger(SystemTriggerType::TimeZoneChange, false);
auto backgroundTrigger = trigger.as<IBackgroundTrigger>();
builder.SetTrigger(backgroundTrigger);
builder.AddCondition(SystemCondition(SystemConditionType::InternetAvailable));
builder.SetTaskEntryPointClsid(classGuid);
builder.Register();
Um die Hintergrundaufgabe in C# zu erstellen und zu registrieren, lautet der Code wie folgt:
//Using the Windows App SDK API for BackgroundTaskBuilder
var builder = new Microsoft.Windows.ApplicationModel.Background.BackgroundTaskBuilder();
var trigger = new SystemTrigger(SystemTriggerType.TimeZoneChange, false);
var backgroundTrigger = trigger as IBackgroundTrigger;
builder.SetTrigger(backgroundTrigger);
builder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable));
builder.SetTaskEntryPointClsid(classGuid);
builder.Register();
Der entsprechende Paketmanifesteintrag für die Hintergrundaufgabe lautet wie folgt:
<Extension Category="windows.backgroundTasks" EntryPoint="Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.Task">
<BackgroundTasks>
<Task Type="general"/>
</BackgroundTasks>
</Extension>
Ein vollständiges WinUI 3-Beispiel für die Registrierung von Hintergrundaufgaben finden Sie auf GitHub.
Verwandte Inhalte
Windows developer