如何防止在执行活动期间关闭android设备的屏幕?
我有一个Activity
,通常需要一些时间来观看屏幕,而无需与屏幕交互。如何防止在执行活动期间关闭android设备的屏幕?
问题是,屏幕关闭,就像almos任何其他应用程序。 我想阻止我的Activity
自动关闭,就像Dolphin HD一样(如果您从设置菜单进行配置)。
我想让用户关闭屏幕按通常的阻止按钮,但防止在我的Activity
设备的自动阻止。
我该如何做到这一点?
Thanx。
将android:keepScreenOn="true"
添加到此活动的布局XML资源中的某个窗口小部件。只要该小部件在屏幕上可见,屏幕就不会自动关闭。
编辑:
一个WakeLock
,通过其他的答案的建议,在技术上将工作。但是,你必须手动释放WakeLock
(如果你搞砸了,屏幕会保持很长时间)。而且,由于您可能会将搞乱,您需要WAKE_LOCK
权限。使用keepScreenOn
可以避免所有这些。
你的意思是小部件的意义“小部件组件”?还是一些看法? – Gangnus 2012-02-17 22:00:54
Thanx的答案,工作得很好:)我认为wakelock可能是一个好方法,但这一个更容易。 – Alex 2012-02-17 22:29:27
我试图将这个属性添加到一个视图中,该视图位于最初为GONE的片段内,并被应用程序中的代码设置为可见。这不起作用:屏幕仍然关闭。 “noelicus”的答案效果很好。 – treesAreEverywhere 2014-05-12 14:33:22
您需要将WAKE_LOCK添加到您的清单中,并根据需要在您的应用程序中进行设置和删除。 看到谷歌文档这里PowerManager.WAKE_LOCK
http://developer.android.com/reference/android/os/PowerManager.html
Thanx的答案,这是有用的 – Alex 2012-02-17 22:31:49
您可能需要使用唤醒锁,以防止屏幕off.Pleas参考http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
Thanx的答案和链接到文档,其总是很好理解如何做这种事情,但这次我想我会使用@CommonsWare解决方案:P – Alex 2012-02-17 22:31:29
要改变它的飞行做到这一点:
if (keepScreenOn)
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
else
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
你正在寻找的东西是[wakelock](http://developer.android.com/reference/android/os/PowerManager.html)。 – 2012-02-17 21:52:25
@alextsc:实际上,对于用户界面,有一个更好的答案。 – CommonsWare 2012-02-17 21:53:36