Dla tych, którzy nie mają czasu na przeczytanie powiązanego pliku PDF: „Wakelocks są kosztowne, jeśli się zapomina”, „Rozważ użycie android: keepScreenOn, aby zapewnić poprawność”.
lenrok258
2
@ lenrok258 Dodano do odpowiedzi ;-)
neteinstein
Podczas używania PowerManager.newWakeLocki getWindow().addFlagsnie działało z jakiegoś powodu, tak się stało.
W widoku, w moim przypadku podklasy SurfaceView, możesz ustawić ekran na zawsze włączony. Chciałem, aby ekran pozostał włączony, gdy ten widok wciąż rysował.
W rzeczywistości jest to bardziej skomplikowane niż potrzeba. Po prostu wywołaj setKeepsScreenOn (true) w dowolnym miejscu, a framework automatycznie zajmie się utrzymaniem ekranu włączonego, gdy okno jest wyświetlane.
dlaczego FLAG_FULLSCREEN ma odpowiadać na to pytanie?
Abdul Wasae
0
android:keepScreenOn="true"
jest lepszym sposobem, aby sobie z tym poradzić, jeśli chcemy, aby jakikolwiek ekran był cały czas aktywny, w przeciwnym razie musimy sobie poradzić, kiedy go włączyć i wyłączyć
1.getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); to najlepsze rozwiązanie dla natywnego Androida.
2. jeśli chcesz korzystać z aplikacji React na Androida, użyj poniższego kodu.
Nie nie nie. Blokady budzenia są łatwo niewłaściwie używane i mogą wyczerpać baterię użytkownika, jeśli nie są używane zbyt ostrożnie. Użyj View#setKeepScreenOnlub jego odpowiednika atrybutu układu xml,android:keepScreenOn="true"
adamp
5
@adamp: OP nie wskazał, czy jego aplikacja jest działaniem czy usługą. Działanie powinno wykorzystywać cytowany mechanizm. Usługa powinna używać rozszerzenia WakeLock.
CommonsWare
dzięki, to nie jest usługa. jest podobny do przeglądarki zdjęć i po prostu nie chcę, aby ekran był przyciemniony.
zacisk
@adamp: Twoja wzmianka o android:keepScreenOn="true"jest moim zdaniem jedyną poprawną odpowiedzią na działania. Trzymaj się z dala od wakelocków, chyba że jest to absolutnie konieczne.
pauluss86
Nie tylko działania, ale dowolny interfejs użytkownika, który wyświetla okno. Zaakceptowana odpowiedź użycia odpowiedniej flagi okna jest równie ważna.
View.setKeepScreenOn()
[link] [1] ?. Sam nigdy z tego nie korzystałem. [1]: developer.android.com/reference/android/view/…Odpowiedzi:
Chcesz użyć czegoś takiego:
źródło
Użyłem:
aby wyłączyć limit czasu ekranu i
aby go ponownie włączyć.
źródło
Istnieje również sposób XML zalecany przez Google:
Sprawdź Prezentacje Google - slajd 16.
źródło
PowerManager.newWakeLock
igetWindow().addFlags
nie działało z jakiegoś powodu, tak się stało.Ważne jest, aby pamiętać, że wszystkie te metody muszą być uruchamiane z wątku interfejsu użytkownika, aby działały. Zobacz zmienianie KeepScreenOn z javascript w aplikacji Android cordova
źródło
Po prostu dodaj poniższą linię do swojej
MainActivity
i aplikacji nigdy nie wyłączaj świateł.źródło
W widoku, w moim przypadku podklasy SurfaceView, możesz ustawić ekran na zawsze włączony. Chciałem, aby ekran pozostał włączony, gdy ten widok wciąż rysował.
źródło
Umieść to na onStart
I to na ciebie się manifestuje
Nie zapomnij
at onStop
źródło
PARTIAL_WAKE_LOCK
umożliwia wyłączenie ekranu.to najlepszy sposób rozwiązania tego problemu
źródło
jest lepszym sposobem, aby sobie z tym poradzić, jeśli chcemy, aby jakikolwiek ekran był cały czas aktywny, w przeciwnym razie musimy sobie poradzić, kiedy go włączyć i wyłączyć
https://developer.android.com/training/scheduling/wakelock.html
źródło
źródło
1.getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); to najlepsze rozwiązanie dla natywnego Androida.
2. jeśli chcesz korzystać z aplikacji React na Androida, użyj poniższego kodu.
źródło
Można to zrobić, kupując Wake Lock.
Sam tego nie testowałem, ale tutaj jest mały poradnik na ten temat.
źródło
View#setKeepScreenOn
lub jego odpowiednika atrybutu układu xml,android:keepScreenOn="true"
WakeLock
.android:keepScreenOn="true"
jest moim zdaniem jedyną poprawną odpowiedzią na działania. Trzymaj się z dala od wakelocków, chyba że jest to absolutnie konieczne.