2011-01-26 114 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"