Częściowe blokady uśpienia to mechanizm w interfejsie PowerManager API, który pozwala programistom utrzymać działanie procesora po wyłączeniu wyświetlacza urządzenia (czy to z powodu przekroczenia limitu czasu systemu, czy naciśnięcia przycisku zasilania przez użytkownika). Aplikacja uzyskuje częściową blokadę uśpienia, wywołując acquire() z flagą PARTIAL_WAKE_LOCK lub używając innych interfejsów API, które uzyskują blokady uśpienia.
Nadmierne używanie blokad częściowego uśpienia wyczerpuje baterię urządzenia, ponieważ uniemożliwia mu przejście w stan niskiego zużycia energii. Częściowe blokady uśpienia powinny być używane wyłącznie w razie potrzeby i zwalniane, gdy tylko przestaną być potrzebne.
Jeśli Twoja aplikacja nadmiernie korzysta z częściowych blokad uśpienia, możesz skorzystać z informacji na tej stronie, aby zdiagnozować i rozwiązać problem.
Rozwiązanie problemu
Blokady uśpienia mogą wyczerpywać baterię urządzenia, dlatego nie należy ich używać, jeśli istnieje alternatywa. W dokumentacji dotyczącej wyboru odpowiedniego interfejsu API, który zapobiega przechodzeniu urządzenia w stan uśpienia, znajdziesz najlepsze rozwiązanie dla swojej aplikacji.
Jeśli musisz użyć blokady uśpienia, postępuj zgodnie ze sprawdzonymi metodami dotyczącymi blokad uśpienia, aby nie pogorszyć wydajności urządzenia. W szczególności zadbaj o to, aby każda wywołana blokada została jak najszybciej zwolniona.
Aplikacja może też używać blokad uśpienia, nawet jeśli nie uzyskujesz ich w sposób jawny. Jeśli widzisz blokady uśpienia przypisane do aplikacji, których nie rozpoznajesz, identyfikacja blokad uśpienia utworzonych przez inne interfejsy API może pomóc Ci w określeniu interfejsów API, które mogły je utworzyć.
Po rozwiązaniu problemu w kodzie możesz sprawdzić poprawki za pomocą lokalnych narzędzi do debugowania blokady uśpienia.
Zobacz też
- Ciągłe częściowe blokady uśpienia
- Wybierz odpowiedni interfejs API, który zapobiega przechodzeniu urządzenia w stan uśpienia
- Dokumentacja blokady uśpienia
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Zablokowane klatki
- Uruchamianie testów porównawczych w trybie ciągłej integracji
- Tworzenie i pomiar profili podstawowych bez użycia biblioteki Macrobenchmark