Для тех, у кого нет времени читать связанный pdf: «Wakelocks дорого обходятся, если они забыты», «Рассмотрите возможность использования android: keepScreenOn для обеспечения корректности».
lenrok258 07
2
@ lenrok258 Добавил в ответ ;-)
neteinstein
Пока использовал PowerManager.newWakeLockи getWindow().addFlagsпо какой-то причине не работало, это сработало.
В представлении, в моем случае подклассе SurfaceView, вы можете установить экран всегда включенным. Я хотел, чтобы экран оставался включенным, пока этот вид все еще рисовал.
На самом деле это сложнее, чем нужно. Просто вызовите setKeepsScreenOn (true) где угодно, и фреймворк автоматически позаботится о том, чтобы экран оставался включенным, когда отображается ваше окно.
зачем нужен FLAG_FULLSCREEN для ответа на этот вопрос?
Abdul Wasae
0
android:keepScreenOn="true"
- лучший способ справиться с этим, если мы хотим, чтобы какой-либо конкретный экран постоянно просыпался, в противном случае мы должны сами решать, когда его включать и отключать
1. getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); лучшее решение для собственного Android.
2. Если вы хотите использовать приложение React для Android, используйте приведенный ниже код.
Нет нет нет. Блокировки пробуждения легко использовать неправильно и могут разрядить аккумулятор пользователя, если использовать их не очень осторожно. Use View#setKeepScreenOnили его эквивалент атрибута макета xml,android:keepScreenOn="true"
adamp
5
@adamp: OP не указал, является ли его приложение деятельностью или службой. Действие должно использовать указанный вами механизм. Служба должна использовать WakeLock.
CommonsWare
спасибо, это не услуга. это похоже на программу просмотра изображений, и я просто не хочу, чтобы экран затемнялся.
зажим
@adamp: android:keepScreenOn="true"на мой взгляд, ваше упоминание о деятельности - единственный верный ответ. Держитесь подальше от wakelocks без крайней необходимости.
pauluss86
Не только действия, но и любой пользовательский интерфейс, отображающий окно. Принятый ответ об использовании соответствующего флажка окна также действителен.
View.setKeepScreenOn()
[ссылка] [1] ?. Но сам я им никогда не пользовался. [1]: developer.android.com/reference/android/view/…Ответы:
Вы хотите использовать что-то вроде этого:
источник
Я использовал:
отключить тайм-аут экрана и
чтобы снова включить его.
источник
Существует также способ XML, который рекомендует Google:
Проверьте Google Slides - Slide 16.
источник
PowerManager.newWakeLock
иgetWindow().addFlags
по какой-то причине не работало, это сработало.Важно отметить, что для работы все эти методы должны запускаться из потока пользовательского интерфейса. См. Изменение KeepScreenOn с javascript в приложении Android Cordova
источник
Просто добавьте строку ниже в свое,
MainActivity
и ваше приложение никогда не выключит свет.источник
В представлении, в моем случае подклассе SurfaceView, вы можете установить экран всегда включенным. Я хотел, чтобы экран оставался включенным, пока этот вид все еще рисовал.
источник
Поместите это в onStart
И это у вас проявляется
Не забывай
на onStop
источник
PARTIAL_WAKE_LOCK
позволяет экрану погаснуть.это лучший способ решить эту проблему
источник
- лучший способ справиться с этим, если мы хотим, чтобы какой-либо конкретный экран постоянно просыпался, в противном случае мы должны сами решать, когда его включать и отключать
https://developer.android.com/training/scheduling/wakelock.html
источник
источник
1. getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); лучшее решение для собственного Android.
2. Если вы хотите использовать приложение React для Android, используйте приведенный ниже код.
источник
Это можно сделать, установив Wake Lock.
Сам я не тестировал, но вот небольшой урок по этому поводу.
источник
View#setKeepScreenOn
или его эквивалент атрибута макета xml,android:keepScreenOn="true"
WakeLock
.android:keepScreenOn="true"
на мой взгляд, ваше упоминание о деятельности - единственный верный ответ. Держитесь подальше от wakelocks без крайней необходимости.