Richtlinien für Hintergrundaufgaben
Language: HTML | XAML

Richtlinien für Hintergrundaufgaben (Windows-Runtime-Apps)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Erstellen Sie bessere Hintergrundaufgaben zur Unterstützung Ihrer App, und sorgen Sie dafür, dass die App den Anforderungen für das Ausführen von Hintergrundaufgaben entspricht.

Ratschläge zu Hintergrundaufgaben

Beachten Sie beim Entwickeln Ihrer Hintergrundaufgabe und vor dem Veröffentlichen Ihrer App die folgenden Ratschläge.

CPU- und Netzwerkkontingente:  Sie dürfen das Ihrer Hintergrundaufgabe zugewiesene CPU-Kontingent oder Netzwerkdaten-Nutzungskontingent nicht überschreiten. Hintergrundaufgaben sollten klein bleiben, um den Akku zu schonen und ein besseres Benutzererlebnis für die Apps im Vordergrund zu ermöglichen. Die für Hintergrundaufgaben geltenden Ressourcenbeschränkungen finden Sie unter Unterstützen Ihrer Anwendung mit Hintergrundaufgaben.

Verwalten von Hintergrundaufgaben:  Ihre App muss eine Liste der registrierten Hintergrundaufgaben abrufen, sich für Fortschritts- und Vervollständigungshandler registrieren und diese Ereignisse angemessen behandeln. Ihre Hintergrundaufgabenklassen müssen Fortschritt, Abbruch und Abschluss berichten. Weitere Informationen finden Sie unter So wird's gemacht: Abrufen einer Liste mit ausstehenden Hintergrundaufgaben, So wird's gemacht: Behandeln einer abgebrochenen Hintergrundaufgabe und So wird's gemacht: Überwachen des Status und Abschlusses von Hintergrundaufgaben.

Verwenden Sie BackgroundTaskDeferral.:  Wenn Ihre Hintergrundaufgabenklasse asynchronen Code ausführt, müssen Sie Verzögerungen verwenden. Andernfalls wird Ihre Hintergrundaufgabe möglicherweise vorzeitig beendet, wenn die Run-Methode abgeschlossen wird. Weitere Informationen finden Sie unter Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe.

Alternativ können Sie eine Verzögerung bewirken und asynchrone Methodenaufrufe mit async/await abschließen. Schließen Sie die Verzögerung nach den await-Methodenaufrufen.

Aktualisieren des App-Manifests:  Deklarieren Sie jede Hintergrundaufgabe im App-Manifest zusammen mit den Triggertypen, mit denen sie verwendet wird. Andernfalls kann Ihre App die Hintergrundaufgaben zur Laufzeit nicht registrieren. Weitere Informationen finden Sie unter So deklarieren Sie Hintergrundaufgaben im App-Manifest.

Vorbereiten von App-Updates:  Wenn Ihre App aktualisiert wird, erstellen und registrieren Sie eine ServicingComplete-Hintergrundaufgabe (siehe SystemTriggerType), mit der App-Updates durchgeführt werden können, die möglicherweise außerhalb des im Vordergrund ausgeführten Kontexts erforderlich sind.

Hintergrundaufgaben für sperrbildschirmfähige Apps unter Windows:  Der Sperrbildschirm ist eine geteilte Ressource. Es können nur sieben Apps gleichzeitig auf dem Sperrbildschirm gezeigt werden, und nur eine App kann als breite Kachel dargestellt werden. Ihre App kann für eine angenehme Benutzererfahrung sorgen, indem Zugriff auf den Sperrbildschirm mit der RequestAccessAsync-Methode verlangt und sichergestellt wird, dass Ihre App auch ohne auf dem Sperrbildschirm angezeigt zu werden noch funktioniert. Auch Apps, die sich nicht auf dem Sperrbildschirm befinden, können Kacheln und Signale aktualisieren, Benachrichtigungen senden und für Systemereignistrigger registriert werden. Die Benutzererfahrung, wenn Ihre App im Vordergrund ist, darf nie unterbrochen werden, auch wenn der Benutzer Ihre App nicht auf dem Sperrbildschirm platziert hat.

In der Übersicht über den Sperrbildschirm finden Sie Informationen, die Sie dabei unterstützen, zu entscheiden ob der Sperrbildschirm der richtige Ort für Ihre App ist.

Anfordern der Ausführung von Hintergrundaufgaben für Windows Phone Store-Apps:  

Windows Phone Store-Apps können alle unterstützten Aufgabentypen ausführen, ohne auf dem Sperrbildschirm angeheftet zu sein. Ihre App muss jedoch vor dem Registrieren einer Hintergrundaufgabe RequestAccessAsync aufrufen. Diese Methode gibt BackgroundAccessStatus.Denied zurück, wenn die maximale Anzahl von Apps mit Hintergrundaufgaben im System überschritten wurde oder wenn der Benutzer Berechtigungen für Hintergrundaufgaben für Ihre App in den Geräteeinstellungen explizit verweigert hat.

Für Windows Phone Store-Apps müssen Sie beim Aktualisieren Ihrer App RemoveAccess und dann RequestAccessAsync aufrufen, wenn Sie die App nach dem Update starten. Um festzustellen, wann Ihre App aktualisiert wurde, müssen Sie die Versionsnummer Ihrer App mit einem in den lokalen Einstellungen gespeicherten Wert dokumentieren. Überprüfen Sie nach dem Starten Ihrer App die Version Ihrer App. Ist diese neuer als die Version in den lokalen Einstellungen, rufen Sie RemoveAccess und RequestAccessAsync auf. Zu diesem Zweck fügen Sie einen Code hinzu, der dem Folgenden ähnelt, und rufen Sie den Ereignishandler zum Starten Ihrer App auf.


async void CheckAppVersion()
{
    String appVersion = String.Format("{0}.{1}.{2}.{3}",
            Package.Current.Id.Version.Build,
            Package.Current.Id.Version.Major,
            Package.Current.Id.Version.Minor,
            Package.Current.Id.Version.Revision);

    if (Windows.Storage.ApplicationData.Current.LocalSettings.Values["AppVersion"] != appVersion)
    {
        // Our app has been updated
        Windows.Storage.ApplicationData.Current.LocalSettings.Values["AppVersion"] = appVersion;

        // Call RemoveAccess
        BackgroundExecutionManager.RemoveAccess();
    }

    BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();
}

Prüfliste für Hintergrundaufgaben

Die folgende Prüfliste gilt für alle Hintergrundaufgaben.

  • Verknüpfen Sie Ihre Hintergrundaufgabe mit dem korrekten Trigger.

  • Fügen Sie Bedingungen hinzu, die für das erfolgreiche Ausführen Ihrer Hintergrundaufgabe sorgen.

  • Behandeln Sie Status, Abschluss und Abbruch von Hintergrundaufgaben.

  • Zeigen Sie keine UI außer Popup-, Kachel- und Signalupdates von der Hintergrundaufgabe an.

  • Fordern Sie in der Run-Methode Verzögerungen für jeden asynchronen Methodenaufruf an, und schließen Sie diese, wenn die Methode abgeschlossen wurde.

    Sie können auch eine Verzögerung mit async/await verwenden.

  • Verwenden Sie den dauerhaften Speicher, um Daten für die Hintergrundaufgabe und die App freizugeben.

  • Deklarieren Sie jede Hintergrundaufgabe im App-Manifest zusammen mit den Triggertypen, mit denen sie verwendet wird. Überprüfen Sie die Korrektheit von Einstiegspunkten und Triggertypen.

  • Schreiben Sie Hintergrundaufgaben mit kurzer Laufzeit. Überschreiten Sie nicht die CPU- oder Netzwerkkontingente, die in Unterstützen der App mit Hintergrundaufgaben gezeigt werden.

  • Verlassen Sie sich bei Hintergrundaufgaben nicht auf Benutzerinteraktionen.

  • Geben Sie im Manifest nur dann ein Executable-Element an, wenn Sie einen Trigger nutzen, der in demselben Kontext wie die App ausgeführt werden soll (z. B. der ControlChannelTrigger).

  • Prüfen Sie Ihre App auf Fehler bei der Registrierung von Hintergrundaufgaben. Führen Sie die Registrierung der Hintergrundaufgabe ggf. mit anderen Parameterwerten erneut durch.

Windows: Prüfliste für Hintergrundaufgaben für sperrbildschirmfähige Apps

Befolgen Sie diese Richtlinien bei der Entwicklung von Hintergrundaufgaben, die auch auf dem Sperrbildschirm verwendet werden könnten. Befolgen Sie die Richtlinien in Richtlinien und Prüfliste für Kacheln auf dem Sperrbildschirm.

  • Überprüfen Sie, ob Ihre App überhaupt auf dem Sperrbildschirm erscheinen muss, bevor Sie sie als sperrbildschirmfähige App entwickeln. Weitere Informationen hierzu finden Sie in der Übersicht über den Sperrbildschirm.

  • Stellen Sie sicher, dass Ihre App auch ohne auf dem Sperrbildschirm zu erscheinen funktioniert.

  • Fordern Sie Sperrbildschirm-Zugriff mit der RequestAccessAsync-Methode an.

  • Fügen Sie eine mit PushNotificationTrigger, ControlChannelTrigger oder TimeTrigger registrierte Hintergrundaufgabe ein, und deklarieren Sie sie im App-Manifest. Überprüfen Sie die Korrektheit von Einstiegspunkten und Triggertypen. Dies wird für die Zertifizierung benötigt und damit der Benutzer die App auf dem Sperrbildschirm platzieren kann.

  • Schreiben Sie auch für sperrbildschirmfähige Apps Hintergrundaufgaben mit einer kurzen Lebensdauer. Überschreiten Sie nicht die CPU- oder Netzwerkkontingente, die in Unterstützen der App mit Hintergrundaufgaben gezeigt werden.

  • Für Windows Phone Store-Apps können Hintergrundaufgaben ohne Warnung und ohne Auslösen des „OnCanceled“-Ereignisses beendet werden, wenn der Arbeitsspeicher des Geräts knapp wird. Dadurch soll die Benutzerfreundlichkeit der App im Vordergrund sichergestellt werden. Entwerfen Sie die Hintergrundaufgabe so, dass dieses Szenario behandelt wird.

Verwandte Themen

Schnellstart: Erstellen und Registrieren einer Hintergrundaufgabe
So wird's gemacht: Registrieren einer Hintergrundaufgabe
So wird's gemacht: Deklarieren von Hintergrundaufgaben im Anwendungsmanifest
So wird's gemacht: Debuggen einer Hintergrundaufgabe
So wird's gemacht: Auslösen von Anhalte-, Fortsetzungs- und Hintergrundereignissen in Windows Store-Apps (beim Debuggen)
Andere verwandte Ratschläge zum Sperrbildschirm
Übersicht über den Sperrbildschirm
Anzeigen von Kacheln auf dem Sperrbildschirm
Richtlinien und Prüfliste für Kacheln auf dem Sperrbildschirm

 

 

Anzeigen:
© 2017 Microsoft