2011-01-06 8 views
12

Im przy użyciu następującego kodu, aby utrzymać ekran na:Android: WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON pytanie

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

Czy istnieje jakiś sposób, aby wyłączyć/usunąć FLAG_KEEP_SCREEN_ON później w kodzie? (Chcę, aby ekran znikał normalnie).

Dzięki!

+1

można po prostu clearFlags .. getWindow() clearFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON.); – Nepster

Odpowiedz

28

Można chyba zrobić coś takiego

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

Czy przyjrzeć API? Istnieje również ten sposób

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

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

nie próbowałem to albo jeszcze.

sobie wyobrazić to będzie działać, aby sprawdzić, czy flaga jest ustawiona:

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

. Edycja: Jak na komentarze, najwyraźniej w ten sposób otrzymujesz wartość flagi.

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

Może być na to również metoda, należy zapoznać się z dokumentem API.

+0

Hmm na drugim "getWindow" eclipse mówi mi, że "getWindow nie może być rozwiązany lub nie jest polem" – Johan

+0

Miałem na myśli getWindow(). Ale nie jestem całkowicie pewien, że metoda getFlags działa w ten sposób. Właściwie to nie podniosłem api – Falmarri

+0

Dobra, cóż, nie udało mi się go uruchomić. Dzięki jednak – Johan

0

Spróbuj

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

Also read this