2011-01-26 95 views
57

屏幕我用:禁止繼續

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

如何恢復到默認狀態(無保上)?

+0

我知道答案被接受,但我想知道你的用例是什麼?在屏幕上顯示活動時是否要保持屏幕顯示狀態?您何時想將其設置回「默認(不保持)狀態」?感謝您的澄清 – Ewoks 2013-06-19 13:21:45

+3

@Ewoks - 一種用例是當您提供用戶首選項以在特定活動期間保持屏幕開啓(例如,閱讀文本),並且用戶在活動處於活動狀態時關閉屏幕(或在背面堆疊上)。然後,您會想要關閉標誌而不重新啓動活動本身。 (另一種選擇是,只有在活動完成並重新啓動後,首選項更改纔會生效。) – 2014-10-20 16:33:36

回答

116

我想這應該這樣做:

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

詳見API

17

如果您僅在需要保持屏幕的視圖上設置標誌android:keepScreenOn =「true」(documentation),則不需要手動重置標誌。

4

另一種方法

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

Also read this

,您還可以在根視圖中的XML設置android:keepScreenOn="true"