Para aqueles que não têm tempo para ler o pdf vinculado: "Wakelocks são caros se esquecidos", "Considere usar android: keepScreenOn para garantir a correção".
lenrok258
2
@ lenrok258 Adicionado à resposta ;-)
neteinstein
Apesar de usar PowerManager.newWakeLocke getWindow().addFlagsnão funcionar por algum motivo, funcionou.
Em uma visualização, no meu caso uma subclasse SurfaceView, você pode definir a tela sempre ligada. Queria que a tela permanecesse ligada enquanto essa visualização ainda estivesse desenhando coisas.
Na verdade, isso é mais complicado do que o necessário. Basta chamar setKeepsScreenOn (true) em qualquer lugar, e o framework cuidará automaticamente de manter a tela ligada quando sua janela estiver sendo exibida.
por que a necessidade de FLAG_FULLSCREEN para responder a esta pergunta?
Abdul Wasae de
0
android:keepScreenOn="true"
éa melhor maneira de lidar com isto se quisermos fazer com que qualquer tela em particular fique ativa o tempo todo, caso contrário, teremos que cuidar de si mesmo quando ativá-la e desativá-la
1.getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); é a melhor solução para Android nativo.
2. se você quiser fazer com o aplicativo Android React, use o código abaixo.
Não não não. Wake locks são facilmente mal utilizados e podem descarregar a bateria do usuário se não forem usados com muito cuidado. Use View#setKeepScreenOnou seu atributo de layout xml equivalente,android:keepScreenOn="true"
adamp
5
@adamp: O OP não indicou se seu aplicativo é uma atividade ou um serviço. Uma atividade deve usar o mecanismo que você cita. Um serviço deve usar a WakeLock.
CommonsWare
obrigado, não é um serviço. é semelhante a um visualizador de imagens e eu só não quero que a tela seja escurecida.
grampo de
@adamp: sua menção a android:keepScreenOn="true"é a única resposta válida para atividades em minha opinião. Fique longe de wakelocks, a menos que seja absolutamente necessário.
pauluss86
Não apenas Atividades, mas qualquer tipo de IU que mostra uma janela. A resposta aceita de usar o sinalizador de janela correspondente é igualmente válida.
View.setKeepScreenOn()
[link] [1] ?. Eu mesmo nunca usei. [1]: developer.android.com/reference/android/view/…Respostas:
Você deseja usar algo assim:
fonte
Eu usei:
para desativar o tempo limite da tela e
para reativá-lo.
fonte
Também existe uma maneira XML que o Google recomenda:
Verifique o Google Slides - Slide 16.
fonte
PowerManager.newWakeLock
egetWindow().addFlags
não funcionar por algum motivo, funcionou.É importante observar que todos esses métodos devem ser executados a partir do thread da IU para funcionarem. Consulte alterando KeepScreenOn de javascript no aplicativo Android Cordova
fonte
Simplesmente adicione a linha abaixo em
MainActivity
seu aplicativo e nunca apague as luzes.fonte
Em uma visualização, no meu caso uma subclasse SurfaceView, você pode definir a tela sempre ligada. Queria que a tela permanecesse ligada enquanto essa visualização ainda estivesse desenhando coisas.
fonte
Coloque isso em onStart
E isso em você se manifesta
Não se esqueça de
em onStop
fonte
PARTIAL_WAKE_LOCK
permite que a tela apague.esta é a melhor maneira de resolver isso
fonte
éa melhor maneira de lidar com isto se quisermos fazer com que qualquer tela em particular fique ativa o tempo todo, caso contrário, teremos que cuidar de si mesmo quando ativá-la e desativá-la
https://developer.android.com/training/scheduling/wakelock.html
fonte
fonte
1.getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); é a melhor solução para Android nativo.
2. se você quiser fazer com o aplicativo Android React, use o código abaixo.
fonte
Isso pode ser feito adquirindo um Wake Lock.
Eu não testei sozinho, mas aqui está um pequeno tutorial sobre isso.
fonte
View#setKeepScreenOn
ou seu atributo de layout xml equivalente,android:keepScreenOn="true"
WakeLock
.android:keepScreenOn="true"
é a única resposta válida para atividades em minha opinião. Fique longe de wakelocks, a menos que seja absolutamente necessário.