das macht es für die laufende Aktivität oder die ganze App?
Muhammed Refaat
@ MayurR.Amipara Ja, ich denke, das ist hier der Fall
Muhammed Refaat
1
Wenn ich diesen Code in die Methode onCreate () der Anwendungsklasse schreibe, funktioniert er dann für die gesamte App?
Jayesh
Wenn nein, wie kann ich den gesamten App-Bildschirm eingeschaltet lassen, indem ich weniger Code einfüge, anstatt diese Zeile zu jeder Aktivität hinzuzufügen?
Jayesh
1
@ Jayesh: Sie können eine baseActivity erstellen und diesen Code in die onCreate-Methode schreiben und alle Aktivitäten von baseActivity aus erweitern.
Für diejenigen, die keine Zeit haben, das verknüpfte PDF zu lesen: "Wakelocks sind teuer, wenn sie vergessen werden", "Erwägen Sie die Verwendung von android: keepScreenOn, um die Richtigkeit sicherzustellen".
Lenrok258
2
@ lenrok258 Zur Antwort
hinzugefügt ;-)
Während der Verwendung PowerManager.newWakeLockund getWindow().addFlagsaus irgendeinem Grund nicht funktioniert, tat dies.
In einer Ansicht, in meinem Fall einer SurfaceView-Unterklasse, können Sie den Bildschirm immer einschalten. Ich wollte, dass der Bildschirm eingeschaltet bleibt, während diese Ansicht noch Material zeichnet.
Das ist eigentlich komplizierter als nötig. Rufen Sie einfach irgendwo setKeepsScreenOn (true) auf, und das Framework sorgt automatisch dafür, dass der Bildschirm eingeschaltet bleibt, wenn Ihr Fenster angezeigt wird.
Warum muss FLAG_FULLSCREEN diese Frage beantworten?
Abdul Wasae
0
android:keepScreenOn="true"
Dies ist der bessere Weg, um damit umzugehen, wenn wir einen bestimmten Bildschirm ständig wach halten möchten. Andernfalls müssen wir uns selbst darum kümmern, wann wir ihn aktivieren und deaktivieren müssen
1.getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) ist die beste Lösung für natives Android.
2. Wenn Sie mit der React Android-Anwendung arbeiten möchten, verwenden Sie bitte den folgenden Code.
Nein nein Nein. Wake-Locks können leicht missbraucht werden und können den Akku des Benutzers entladen, wenn sie nicht sehr vorsichtig verwendet werden. Verwenden Sie View#setKeepScreenOnoder sein XML-Layout-Attribut äquivalent,android:keepScreenOn="true"
adamp
5
@adamp: Das OP hat nicht angegeben, ob es sich bei seiner App um eine Aktivität oder einen Dienst handelt. Eine Aktivität sollte den von Ihnen genannten Mechanismus verwenden. Ein Dienst sollte a verwenden WakeLock.
CommonsWare
Danke, es ist kein Service. Es ähnelt einem Bildbetrachter und ich möchte nicht, dass der Bildschirm abgeblendet wird.
Klemme
@adamp: Ihre Erwähnung android:keepScreenOn="true"ist meiner Meinung nach die einzig gültige Antwort für Aktivitäten. Halten Sie sich von Wakelocks fern, es sei denn, dies ist unbedingt erforderlich.
Pauluss86
Nicht nur Aktivitäten, sondern jede Art von Benutzeroberfläche, die ein Fenster anzeigt. Die akzeptierte Antwort auf die Verwendung des entsprechenden Fensterflags ist gleichermaßen gültig.
View.setKeepScreenOn()
[Link] [1]?. Ich habe es selbst nie benutzt. [1]: developer.android.com/reference/android/view/…Antworten:
Sie möchten so etwas verwenden:
quelle
Ich benutzte:
um das Bildschirm-Timeout zu deaktivieren und
um es wieder zu aktivieren.
quelle
Es gibt auch eine XML-Methode, die Google empfiehlt:
Überprüfen Sie Google Slides - Folie 16.
quelle
PowerManager.newWakeLock
undgetWindow().addFlags
aus irgendeinem Grund nicht funktioniert, tat dies.Es ist wichtig zu beachten, dass diese Methoden alle vom UI-Thread ausgeführt werden müssen, damit sie funktionieren. Siehe Ändern von KeepScreenOn von Javascript in der Android Cordova App
quelle
Fügen Sie einfach die folgende Zeile in Ihre hinzu
MainActivity
und Ihre App schaltet niemals das Licht aus.quelle
In einer Ansicht, in meinem Fall einer SurfaceView-Unterklasse, können Sie den Bildschirm immer einschalten. Ich wollte, dass der Bildschirm eingeschaltet bleibt, während diese Ansicht noch Material zeichnet.
quelle
Setzen Sie dies auf onStart
Und das manifestiert sich bei dir
Vergiss es nicht
bei onStop
quelle
PARTIAL_WAKE_LOCK
Ermöglicht das Ausschalten des Bildschirms.Dies ist der beste Weg, um dies zu lösen
quelle
Dies ist der bessere Weg, um damit umzugehen, wenn wir einen bestimmten Bildschirm ständig wach halten möchten. Andernfalls müssen wir uns selbst darum kümmern, wann wir ihn aktivieren und deaktivieren müssen
https://developer.android.com/training/scheduling/wakelock.html
quelle
quelle
1.getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) ist die beste Lösung für natives Android.
2. Wenn Sie mit der React Android-Anwendung arbeiten möchten, verwenden Sie bitte den folgenden Code.
quelle
Dies kann durch den Erwerb eines Wake Lock erfolgen.
Ich habe es nicht selbst getestet, aber hier ist ein kleines Tutorial dazu.
quelle
View#setKeepScreenOn
oder sein XML-Layout-Attribut äquivalent,android:keepScreenOn="true"
WakeLock
.android:keepScreenOn="true"
ist meiner Meinung nach die einzig gültige Antwort für Aktivitäten. Halten Sie sich von Wakelocks fern, es sei denn, dies ist unbedingt erforderlich.