2011-01-06 3 views
12

Im den folgenden Code auf den Bildschirm zu halten:Android: WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON Frage

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Gibt es eine Möglichkeit, die FLAG_KEEP_SCREEN_ON später im Code zu deaktivieren/entfernen? (Ich möchte, dass der Bildschirm normal ausblendet).

Danke!

+1

können Sie einfach Clear .. getWindow() Clear (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON). – Nepster

Antwort

28

Man könnte wahrscheinlich so etwas wie dieses

this.getWindow().setFlags(this.getWindow().getFlags() & ~WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) 

zu tun Haben Sie an der API aussehen? Es gibt auch diese Methode

http://developer.android.com/reference/android/view/Window.html#clearFlags%28int%29

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

ich nicht versucht haben entweder noch.

Ich stelle mir dies funktionieren wird, zu überprüfen, ob das Flag gesetzt ist:

this.getWindow() getFlags() & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

. Edit: Laut den Kommentaren erhält man so scheinbar den Wert der Flagge.

this.getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 

Möglicherweise gibt es dafür auch eine Methode, Sie sollten sich das API-Dokument ansehen.

+0

Hmm auf der zweiten "getWindow" Eclipse sagt mir, dass "GetWindow kann nicht aufgelöst werden oder ist kein Feld" – Johan

+0

Ich meine getWindow(). Aber ich bin nicht ganz sicher, ob die getFlags-Methode so funktioniert. Ich habe die API nicht wirklich hochgezogen. – Falmarri

+0

Okay, gut, ich habe es nicht zur Arbeit gebracht. Danke, obwohl – Johan

0

Versuchen Sie, diese

getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Also read this