hac*_*bod 331
这要求您为应用程序提供额外的权限,并且很容易引入错误,因为您不小心保持唤醒锁定,从而使屏幕保持打开状态.
使用窗口标志要好得多FLAG_KEEP_SCREEN_ON,你可以在你的活动窗口中启用,onCreate()如下所示:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Run Code Online (Sandbox Code Playgroud)
这将确保在您的窗口位于前景时屏幕保持打开状态,并且仅在它位于前景时.它大大简化了这个常见用例,消除了您的应用在状态之间转换时需要做的任何杂耍.
Tar*_*ngh 32
这个问题已经由@hackbod做出了很好的答案!
我正在用两个额外的解决方案回答这个问题!
现有解决方案
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Run Code Online (Sandbox Code Playgroud)
其他方案:
我们可以用 keepScreenOn
1. implementation使用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);
}
Run Code Online (Sandbox Code Playgroud)
文档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" >
Run Code Online (Sandbox Code Playgroud)
文档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其他方面它将无法运作!
| 归档时间: |
|
| 查看次数: |
39012 次 |
| 最近记录: |