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.
Universelle Windows-Apps sollten in allen Gerätefamilien konsistent funktionieren. Auf akkubetriebenen Geräten ist der Stromverbrauch ein wichtiger Faktor für die Gesamterfahrung des Benutzers mit Ihrer App. Die tägliche Akkulaufzeit ist ein wünschenswertes Feature für jeden Benutzer, erfordert jedoch Effizienz von der gesamten auf dem Gerät installierten Software, einschließlich Ihrer eigenen.
Das Verhalten von Hintergrundaufgaben ist wahrscheinlich der wichtigste Faktor für die Gesamtenergiekosten einer App. Eine Hintergrundaufgabe ist jede Programmaktivität, die beim System registriert wurde, um ausgeführt zu werden, ohne dass die App geöffnet wird. Weitere Informationen finden Sie unter Erstellen und Registrieren einer Hintergrundaufgabe außerhalb von Prozessen .
Berechtigungen für Hintergrundaktivitäten
Auf Desktop- und mobilen Geräten unter Windows 10, Version 1607 oder höher, können Benutzer ihre "Akkunutzung nach App" im Abschnitt "Akku" der Windows-Einstellungen anzeigen. Hier sehen sie eine Liste der Apps und den Prozentsatz der Akkulaufzeit, die jede App verbraucht hat (aus der Akkulaufzeit, die seit der letzten Ladung verwendet wurde). Für UWP-Apps in dieser Liste können Benutzer die App auswählen, um Steuerelemente im Zusammenhang mit Hintergrundaktivitäten zu öffnen.
Hintergrundberechtigungen für mobile Geräte
Auf mobilen Geräten wird Benutzern eine Liste mit Auswahlknöpfen angezeigt, die die Berechtigungseinstellung für die Hintergrundaktivität für diese App angeben. Hintergrundaktivitäten können auf "Immer zulässig", "Nie zulässig" oder "Von Windows verwaltet" festgelegt werden, was bedeutet, dass die Hintergrundaktivität der App vom System entsprechend einer Reihe von Faktoren reguliert wird.
Hintergrundberechtigungen auf dem Desktop
Auf Desktopgeräten wird die Einstellung "Von Windows verwaltet" als Umschalter angezeigt, der standardmäßig auf "Ein " festgelegt ist. Wenn der Benutzer zu "Aus" wechselt, wird ein Kontrollkästchen angezeigt, mit dem er die Berechtigungen für Hintergrundaktivitäten manuell definieren kann. Wenn das Kontrollkästchen aktiviert ist, kann die App jederzeit Hintergrundaufgaben ausführen. Wenn das Kontrollkästchen deaktiviert ist, wird die Hintergrundaktivität deaktiviert.
In Ihrer App können Sie den BackgroundAccessStatus-Enumerationswert verwenden, der von einem Aufruf der BackgroundExecutionManager.RequestAccessAsync()- Methode zurückgegeben wird, um die aktuelle Berechtigungseinstellung für Hintergrundaktivitäten zu bestimmen.
Das heißt, wenn Ihre App keine verantwortungsvolle Hintergrundaktivitätsverwaltung implementiert, kann der Benutzer Hintergrundberechtigungen für Ihre App insgesamt verweigern, was für beide Parteien nicht wünschenswert ist. Wenn Ihre App die Berechtigung zum Ausführen im Hintergrund verweigert wurde, jedoch eine Hintergrundaktivität erfordert, um eine Aktion für den Benutzer abzuschließen, können Sie den Benutzer benachrichtigen und auf die Windows-Einstellungen verweisen. Dazu können Sie die Windows-Einstellungen öffnen und zur Seite "Hintergrund-Apps" oder "Details zur Akkunutzung" navigieren.
Arbeiten mit der Funktion "Stromsparmodus"
Der Stromsparmodus ist ein Feature auf Systemebene, das Benutzer in den Einstellungen konfigurieren können. Sie schneidet alle Hintergrundaktivitäten aller Apps ab, wenn der Akkustand unter einen benutzerdefinierten Schwellenwert fällt, mit Ausnahme der Hintergrundaktivität von Apps, die auf "Immer zulässig" festgelegt wurden.
Überprüfen Sie den Status des Stromsparmodus in Ihrer App, indem Sie auf die Eigenschaft "PowerManager.EnergySaverStatus " verweisen. Es handelt sich um einen Enumerationswert: Entweder EnergySaverStatus.Disabled, EnergySaverStatus.Off oder EnergySaverStatus.On. Wenn Ihre App Hintergrundaktivitäten erfordert und nicht auf "Immer zulässig" festgelegt ist, sollte sie EnergySaverStatus behandeln.On durch Benachrichtigen des Benutzers, dass die angegebenen Hintergrundaufgaben erst ausgeführt werden, wenn der Stromsparmodus deaktiviert ist. Während die Verwaltung von Hintergrundaktivitäten der Hauptzweck des Stromsparmodus ist, kann Ihre App zusätzliche Anpassungen vornehmen, um Energie weiter zu sparen, wenn der Stromsparmodus aktiviert ist. Wenn der Stromsparmodus aktiviert ist, kann Ihre App die Verwendung von Animationen reduzieren, die Standortabfragung beenden oder Synchronisierungen und Sicherungen verzögern.
Weitere Optimierung von Hintergrundaufgaben
Im Folgenden finden Sie weitere Schritte, die Sie beim Registrieren Ihrer Hintergrundaufgaben ausführen können, um sie akkufähiger zu machen.
Verwenden eines Wartungsauslösers
Ein MaintenanceTrigger-Objekt kann anstelle eines SystemTrigger-Objekts verwendet werden, um zu bestimmen, wann eine Hintergrundaufgabe gestartet wird. Aufgaben, die Wartungstrigger verwenden, werden nur ausgeführt, wenn das Gerät mit Netzstrom verbunden ist und sie länger ausgeführt werden dürfen. Anweisungen finden Sie unter Verwenden eines Wartungstriggers .
Verwenden des BackgroundWorkCostNotHigh-Systembedingungstyps
Systembedingungen müssen erfüllt sein, damit Hintergrundaufgaben ausgeführt werden können (weitere Informationen finden Sie unter Festlegen von Bedingungen zum Ausführen einer Hintergrundaufgabe ). Die Kosten der Hintergrundarbeit sind eine Messung, die die relative Energiewirkung der Ausführung der Hintergrundaufgabe angibt. Eine Aufgabe, die ausgeführt wird, wenn das Gerät an den Netzstrom angeschlossen ist, wäre als niedrig gekennzeichnet (wenig/keine Auswirkung auf den Akku). Eine Aufgabe, die ausgeführt wird, wenn sich das Gerät im Akkubetrieb befindet und der Bildschirm ausgeschaltet ist, ist als hoch gekennzeichnet, da vermutlich nur wenig Programmaktivitäten auf dem Gerät ausgeführt werden, sodass die Hintergrundaufgabe eine größere relative Kosten haben würde. Eine Aufgabe, die ausgeführt wird, wenn das Gerät vom Akku betrieben wird und der Bildschirm aktiv ist, wird als mittel gekennzeichnet, da vermutlich bereits einige Programme aktiv sind und die Hintergrundaufgabe die Energiekosten etwas erhöhen würde. Die BackgroundWorkCostNotHigh-Systembedingung verzögert die Ausführung Ihrer Aufgabe, bis entweder der Bildschirm eingeschaltet ist oder das Gerät mit dem Stromnetz verbunden ist.
Testen der Akkueffizienz
Testen Sie Ihre App unbedingt auf realen Geräten für alle Szenarien mit hohem Stromverbrauch. Es ist ratsam, Ihre App auf vielen verschiedenen Geräten zu testen, wobei der Stromsparmodus aktiviert und deaktiviert ist, und in Umgebungen mit unterschiedlicher Netzwerkstärke.