强制屏幕打开

如何强制屏幕保持活动状态,而不是在我的应用程序运行时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" ( 文档 )添加到需要保持屏幕的视图。

允许在哪些视图保留和哪些不保留的情况下进行更细粒度的控制。 您甚至可以通过这种方式从资源文件中引用设置。