Reagieren auf Systemereignisse mit Hintergrundaufgaben
Wichtige APIs
Hier erfahren Sie, wie Sie eine Hintergrundaufgabe erstellen können, die auf SystemTrigger-Ereignisse reagiert.
Dieses Thema setzt voraus, dass Sie für Ihre App eine Hintergrundaufgabenklasse geschrieben haben und dass diese Aufgabe als Reaktion auf ein vom System ausgelöstes Ereignis ausgeführt werden muss, z. B. wenn sich die Internetverfügbarkeit ändert oder sich der Benutzer anmeldet. Der Schwerpunkt dieses Themas liegt auf der SystemTrigger-Klasse. Weitere Informationen zum Schreiben einer Hintergrundaufgabenklasse finden Sie unter Erstellen und Registrieren einer Hintergrundaufgabe innerhalb des Prozesses oder Erstellen und Registrieren einer Hintergrundaufgabe außerhalb des Prozesses.
Erstellen eines SystemTrigger-Objekts
Erstellen Sie in Ihrem App-Code ein neues SystemTrigger-Objekt. triggerType ist der erste Parameter und gibt den Typ des Systemereignis-Triggers zur Aktivierung der Hintergrundaufgabe an. Eine Liste mit Ereignistypen finden Sie unter SystemTriggerType.
Der zweite Parameter (OneShot) gibt an, ob die Hintergrundaufgabe nur einmal ausgeführt wird, wenn das Systemereignis das nächste Mal eintritt, oder ob die Hintergrundaufgabe beim Auslösen des Systemereignisses immer ausgeführt wird, bis die Registrierung der Aufgabe aufgehoben wird.
Der folgende Code gibt an, dass die Hintergrundaufgabe immer ausgeführt wird, wenn das Internet verfügbar wird:
SystemTrigger internetTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
Windows::ApplicationModel::Background::SystemTrigger internetTrigger{
Windows::ApplicationModel::Background::SystemTriggerType::InternetAvailable, false};
SystemTrigger ^ internetTrigger = ref new SystemTrigger(SystemTriggerType::InternetAvailable, false);
Registrieren der Hintergrundaufgabe
Registrieren Sie die Hintergrundaufgabe, indem Sie die Funktion zum Registrieren der Hintergrundaufgabe aufrufen. Weitere Informationen zum Registrieren von Hintergrundaufgaben finden Sie unter Registrieren einer Hintergrundaufgabe.
Der folgende Code registriert die Hintergrundaufgabe für einen Hintergrundprozess, der außerhalb des Prozesses ausgeführt wird. Wenn Sie eine Hintergrundaufgabe aufrufen, die im gleichen Prozess wie die Host-App ausgeführt wird, legen Sie nicht entrypoint
fest:
string entryPoint = "Tasks.ExampleBackgroundTaskClass"; // Namespace name, '.', and the name of the class containing the background task
string taskName = "Internet-based background task";
BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
std::wstring entryPoint{ L"Tasks.ExampleBackgroundTaskClass" }; // don't set for in-process background tasks.
std::wstring taskName{ L"Internet-based background task" };
Windows::ApplicationModel::Background::BackgroundTaskRegistration task{
RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition) };
String ^ entryPoint = "Tasks.ExampleBackgroundTaskClass"; // don't set for in-process background tasks
String ^ taskName = "Internet-based background task";
BackgroundTaskRegistration ^ task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
Hinweis
Universelle Windows-Plattform Apps müssen RequestAccessAsync aufrufen, bevor sie einen der Hintergrundtriggertypen registrieren.
Rufen Sie RemoveAccess und anschließend RequestAccessAsync auf, wenn die App nach der Aktualisierung gestartet wird, um sicherzustellen, dass Ihre universelle Windows-App nach der Veröffentlichung eines Updates weiterhin ordnungsgemäß ausgeführt wird. Weitere Informationen finden Sie unter Richtlinien für Hintergrundaufgaben.
Hinweis
Parameter für die Registrierung von Hintergrundaufgaben werden zum Zeitpunkt der Registrierung überprüft. Bei ungültigen Registrierungsparametern wird ein Fehler zurückgegeben. Stellen Sie sicher, dass Ihre App problemlos mit Szenarien ohne erfolgreiche Registrierung von Hintergrundaufgaben zurechtkommt. Andernfalls stürzt die App unter Umständen ab, wenn sie so konzipiert ist, dass nach dem Versuch, eine Aufgabe zu registrieren, ein gültiges Registrierungsobjekt vorhanden sein muss.
Hinweise
Laden Sie das Beispiel zu Hintergrundaufgaben herunter, um die Registrierung der Hintergrundaufgabe in Aktion zu sehen.
Hintergrundaufgaben können als Reaktion auf die Ereignisse SystemTrigger und MaintenanceTrigger ausgeführt werden. Dennoch ist das Deklarieren von Hintergrundaufgaben im Anwendungsmanifest erforderlich. Vor dem Registrieren einer Hintergrundaufgabe müssen Sie außerdem RequestAccessAsync aufrufen.
Apps können Hintergrundaufgaben registrieren, die auf die Ereignisse TimeTrigger, PushNotificationTrigger und NetworkOperatorNotificationTrigger reagieren. So können die Apps eine Echtzeitkommunikation mit dem Benutzer bereitstellen, auch wenn die App sich nicht im Vordergrund befindet. Weitere Informationen finden Sie unter Unterstützen Ihrer App mit Hintergrundaufgaben.
Zugehörige Themen
- Erstellen und Registrieren einer Hintergrundaufgabe außerhalb von Prozessen
- Erstellen und Registrieren einer Hintergrundaufgabe innerhalb von Prozessen
- Deklarieren von Hintergrundaufgaben im Anwendungsmanifest
- Behandeln einer abgebrochenen Hintergrundaufgabe
- Überwachen des Status und Abschlusses von Hintergrundaufgaben
- Registrieren einer Hintergrundaufgabe
- Festlegen von Bedingungen zum Ausführen einer Hintergrundaufgabe
- Aktualisieren einer Live-Kachel über eine Hintergrundaufgabe
- Verwenden eines Wartungsauslösers
- Ausführen einer Hintergrundaufgabe für einen Timer
- Richtlinien für Hintergrundaufgaben
- Debuggen einer Hintergrundaufgabe
- Auslösen von Anhalten-, Fortsetzen- und Hintergrundereignissen in UWP-Apps (beim Debuggen)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für