Ciągłe częściowe blokady uśpienia

Blokady częściowego budzenia to mechanizm w interfejsie PowerManager API, który pozwala deweloperom zachować działanie procesora po wyłączeniu ekranu urządzenia (czy to z powodu limitu czasu systemu czy naciśnięcia przez użytkownika przycisku zasilania). Aplikacja uzyskuje częściową blokadę uśpienia, wywołując funkcję acquire() z flagą PARTIAL_WAKE_LOCK. Blokada częściowego budzenia zawiesza się, jeśli aplikacja jest uruchomiona w tle przez dłuższy czas (żadna część aplikacji nie jest widoczna dla użytkownika). To powoduje rozładowywanie się baterii, ponieważ uniemożliwia urządzeniu przejście w tryb oszczędzania energii. Blokady częściowego budzenia należy używać tylko wtedy, gdy jest to konieczne, i odblokowywać je, gdy nie są już potrzebne.

Jeśli w Twojej aplikacji występuje zablokowany częściowy blokadę wybudzania, możesz skorzystać z instrukcji na tej stronie, aby zdiagnozować i rozwiązać problem.

Wykrywanie problemu

Nie zawsze możesz wiedzieć, że w Twojej aplikacji występują częściowe blokady uśpienia. Jeśli aplikacja została już opublikowana, Android Vitals może pomóc Ci wykryć problem.

Android Vitals

Dane Android Vitals mogą pomóc Ci poprawić działanie aplikacji, ostrzegając Cię w Konsoli Play, gdy aplikacja ma problemy z blokowaniem częściowych blokad przebudzenia. Android Vitals zgłasza częściowe blokady uśpienia jako zablokowane, gdy w sesji baterii wystąpi co najmniej 1 godzinna częściowa blokada uśpienia w tle.

Definicja sesji baterii zależy od wersji platformy.

  • W Androidzie 10 sesja baterii to zbiór wszystkich raportów o stanie baterii, które zostały odebrane w ciągu danego 24-godzinnego okresu. Raport o stanie baterii odnosi się do przedziału czasu między dwoma ładowaniami baterii od poziomu naładowania poniżej 20% do powyżej 80% lub od dowolnego poziomu do 100%.
  • W Androidzie 11 sesja baterii to stały okres 24 godzin.

Liczba wyświetlanych sesji baterii jest wartością zbiorczą dla wszystkich zmierzonych użytkowników aplikacji. Informacje o tym, jak Google Play zbiera dane Android Vitals, znajdziesz w dokumentacji Konsoli Play.

Gdy stwierdzisz, że Twoja aplikacja ma zbyt wiele zablokowanych częściowych blokad aktywacji, musisz rozwiązać ten problem.

Rozwiąż problem

Blokady aktywacji mogą wyczerpywać baterię urządzenia, dlatego nie należy ich używać, jeśli istnieje inna możliwość. Dokumentacja Wybór odpowiedniego interfejsu API do utrzymywania urządzenia w stanie czuwania może pomóc Ci znaleźć najlepsze rozwiązanie dla Twojej aplikacji.

Jeśli musisz użyć blokady aktywacji, zachowaj te sprawdzone metody, aby mieć pewność, że nie wpłynie to negatywnie na wydajność urządzenia. W szczególności sprawdź, czy każde urządzenie, które kupisz, jest odblokowane, i jak najszybciej odblokuj je.

Po rozwiązaniu problemu w kodzie możesz sprawdzić wprowadzone zmiany za pomocą lokalnych narzędzi do debugowania blokady aktywacji.