如何在执行活动期间阻止Android设备的屏幕关闭?

我有一个Activity ,通常需要一些时间来观看屏幕而不与它交互。

问题是屏幕关闭,就像almos任何其他应用程序一样。 我想阻止我的Activity自动关闭,就像Dolphin HD一样(如果你从设置菜单配置它)。

我想让用户按下常用的块按钮关闭屏幕,但在我的Activity阻止设备的自动阻止。

我怎样才能做到这一点?

感谢名单。

Solutions Collecting From Web of "如何在执行活动期间阻止Android设备的屏幕关闭?"

android:keepScreenOn="true"添加到此活动的布局XML资源中的某个窗口小部件。 只要该小部件在屏幕上可见,屏幕就不会自动关闭。

编辑:

正如其他答案所建议的WakeLockWakeLock在技​​术上将起作用。 但是你必须手动释放WakeLock (如果你搞砸了,屏幕会长时间停留)。 而且,既然你可以弄乱它,你需要WAKE_LOCK权限。 使用keepScreenOn可以避免所有这些。

要动态更改它,请执行以下操作:

 if (keepScreenOn) getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); else getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

您需要将WAKE_LOCK添加到清单中,并根据需要在应用中设置和删除它。 有关PowerManager.WAKE_LOCK的信息,请参阅此处的Google文档

http://developer.android.com/reference/android/os/PowerManager.html

您可能希望使用唤醒锁定以防止屏幕关闭。请参阅http://developer.android.com/reference/android/os/PowerManager.WakeLock.html

对于“Xamarin Android”:

 Window.AddFlags(WindowManagerFlags.KeepScreenOn);