强制屏幕打开
如何强制屏幕保持活动状态,而不是在我的应用程序运行时closures?
请不要使用唤醒锁
这就要求你给你的应用程序一个额外的权限,并且很容易引入你不小心保持唤醒locking并因此离开屏幕的错误。
使用窗口标志FLAG_KEEP_SCREEN_ON
,你可以在你的onCreate()
活动窗口上启用,这样FLAG_KEEP_SCREEN_ON
:
@覆盖 保护无效onCreate(捆绑冰柱){ super.onCreate(冰柱); 。getWindow()addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }
这将确保屏幕保持在你的窗口在前台,只有当它在前台。 这大大简化了这个常见的用例,消除了你的应用程序在状态之间转换时需要做的任何杂耍。
这个问题已经很好回答@ hackbod!
我用两个附加解决scheme来回答这个问题!
现有解决scheme:
@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }
其他解决scheme
我们可以使用keepScreenOn
1. setKeepScreenOn() in java code
使用setKeepScreenOn() in java code
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // or any View (in case generated programmatically ) View v = getLayoutInflater().inflate(R.layout.driver_home, null); v.setKeepScreenOn(true); setContentView(v); }
文档http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean);
2.将keepScreenOn
添加到xml layout
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:keepScreenOn="true" >
Google文件http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
注(一些有用的观点):
1.不要紧keepScreenOn
应该用在Main/Root/Parent View
它可以和任何子child view
一起使用将会起作用在Parent view
2.事情唯一的问题是, View's Visibility must be visible
否则它是行不通的!
另一种解决scheme是将android:keepScreenOn="true"
( 文档 )添加到需要保持屏幕的视图。
允许在哪些视图保留和哪些不保留的情况下进行更细粒度的控制。 您甚至可以通过这种方式从资源文件中引用设置。