Teilweise Wake Locks sind ein Mechanismus in der PowerManager API, mit dem Entwickler die CPU weiterlaufen lassen können, nachdem das Display eines Geräts ausgeschaltet wurde (entweder aufgrund eines System-Timeouts oder weil der Nutzer den Ein-/Aus-Schalter gedrückt hat). Ihre App erhält einen partiellen Wakelock, indem sie acquire() mit dem Flag PARTIAL_WAKE_LOCK aufruft oder andere APIs verwendet, die Wakelocks erhalten.
Ein partieller Wakelock bleibt hängen, wenn er lange gehalten wird, während Ihre App im Hintergrund ausgeführt wird (kein Teil Ihrer App ist für den Nutzer sichtbar). Dieser Zustand entlädt den Akku des Geräts, da er verhindert, dass das Gerät in einen Energiesparmodus wechselt. Teilweise Wake Locks sollten nur bei Bedarf verwendet und freigegeben werden, sobald sie nicht mehr benötigt werden.
Wenn Ihre App einen hängenden partiellen Wakelock hat, können Sie das Problem mithilfe der Anleitung auf dieser Seite diagnostizieren und beheben.
Problem beheben
Da Wakelocks den Geräteakku schnell entladen können, sollten Sie sie nur verwenden, wenn es keine Alternative gibt. In der Dokumentation Die richtige API auswählen, um das Gerät aktiv zu halten finden Sie Informationen zur besten Lösung für Ihre App.
Wenn Sie einen Wakelock verwenden müssen, halten Sie sich an die Best Practices für Wakelocks, damit Ihre Wakelocks die Effizienz des Geräts nicht beeinträchtigen. Achten Sie insbesondere darauf, dass jedes Gerät, das Sie erwerben, freigegeben wird, und geben Sie die Sperre so schnell wie möglich frei.
Nachdem Sie das Problem im Code behoben haben, können Sie Ihre Korrekturen mit lokalen Wakelock-Debugging-Tools überprüfen.
Weitere Informationen
Empfehlungen für Sie
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist
- Eingefrorene Frames
- Benchmarks in Continuous Integration ausführen
- Baseline-Profile ohne Macrobenchmark erstellen und messen