Übermäßige Teil-Wakelocks

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 die Ein-/Aus-Taste gedrückt hat). Ihre App ruft acquire() mit dem PARTIAL_WAKE_LOCK Flag auf oder verwendet andere APIs, die Wakelocks abrufen, um ein partielles Wakelock zu erhalten. Durch die übermäßige Verwendung von partiellen Wakelocks wird der Akku des Geräts entladen, da das Gerät nicht in den Energiesparmodus wechseln kann. Teilweise Wake Locks sollten nur bei Bedarf verwendet und freigegeben werden, sobald sie nicht mehr benötigt werden.

Wenn Ihre App übermäßig viele partielle Wake Locks verwendet, können Sie das Problem mithilfe der Informationen 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.

Ihre App verwendet möglicherweise auch dann Wakelocks, wenn Sie sie nicht explizit abrufen. Wenn Sie Wake Locks sehen, die der App zugeordnet sind und die Sie nicht kennen, kann Ihnen Wake Locks identifizieren, die von anderen APIs erstellt wurden dabei helfen, die APIs zu ermitteln, die sie möglicherweise erstellt haben.

Nachdem Sie das Problem im Code behoben haben, können Sie Ihre Korrekturen mit lokalen Wakelock-Debugging-Tools überprüfen.

Weitere Informationen