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ęściowe zablokowanie wybudzania, wywołując interfejs acquire() z flagą PARTIAL_WAKE_LOCK lub używając innych interfejsów API, które uzyskują zablokowanie wybudzania. 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 zużywanie się baterii, ponieważ uniemożliwia urządzeniu przejście w stany o niższym poborze mocy. 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 problem z blokadą częściowego budzenia, 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 ciągu 24 godzin występuje co najmniej 1 godzinna częściowa blokada uśpienia w tle.

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 wykryjesz, że Twoja aplikacja ma zablokowane częściowe blokady 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 blokada nie wpłynie 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.

Zobacz również