FLAG_KEEP_SCREEN_ON是让屏幕保持不暗不关闭的最好方法,那么这个方法具体应该怎么使用呢?
我在stackoverflow上找到如下代码:
@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }
简单来说就是把getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);加进onCreate里面,用WindowManager来管理窗口。
既然是加在Activity的onCreate里,不用试验也知道肯定是针对当前一个Activity的。如果想让所有的Activity都保持唤醒状态怎么办呢?
其实如果用到我之前提到过的BaseActivity这一招得话就可以轻松解决了:
在BaseActivity以及,如果有的话BaseTabActivity,BaseMapActivity等的onCreate中都加入:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
就可以保证继承他们的Activity都继承保持屏幕唤醒了。
在很多情况下要保持手机屏幕长亮,比如播放视频时。
KEEP_SCREEN_ON_FLAG锁由WindowsMaganerService统一管理
mHoldingScreenWakeLock = pmc.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,""KEEP_SCREEN_ON_FLAG"");
一般情况,上层用,只需将当前窗口增加WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON标志
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
但在android视频播放器MediaPlayer里有统一接口设置flags.
Landroid/media/MediaPlayer;->setScreenOnWhilePlaying(Z)V
分享到:
相关推荐
在 Android 中,我们可以使用 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 来禁止屏幕休眠和锁屏。这个标志位可以使屏幕保持常亮,直到我们手动释放它。使用这个方法非常简单,我们只需要在程序中添加一行代码...
要保持屏幕常亮,我们需要修改`WindowManager.LayoutParams`中的`FLAG_KEEP_SCREEN_ON`标志。在JNI中,我们可以通过Java反射API来修改窗口参数,确保在应用程序运行时屏幕不会自动熄灭。 3. **动态改变应用的显示...
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.*); ``` 这种方法的优点是,不需要申请权限,也是官方推荐的...
`FLAG_KEEP_SCREEN_ON` 会保持屏幕常亮,而 `screenBrightness` 属性则可以控制屏幕亮度。 总结一下,这个“Tb开关灯效果”项目主要涉及到以下几个Android开发知识点: 1. 使用ToggleButton控件创建开关按钮。 2. ...
- `FLAG_KEEP_SCREEN_ON`是一种更轻量级的实现方式,当Activity失去焦点时,系统会自动释放该标志,避免不必要的电池消耗。 - 在生产环境中,考虑到用户体验和电池寿命,应谨慎使用屏幕常亮功能。 博客文章...
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_...
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); startActivity(lockScreenIntent); ``` 3. 对于自定义锁屏的交互,如输入密码或滑动解锁,你需要监听触摸事件并处理相应的验证逻辑。 四、屏蔽系统默认锁屏 ...
在`onCreate()`方法中,我们调用了`getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)`。这个方法会设置窗口的一个标志,告诉系统不要让屏幕熄灭。`FLAG_KEEP_SCREEN_ON`是一个布尔标志,用于...
- `WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON`:保持屏幕一直开启。 - `WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON`:允许在屏幕开启的时候锁定屏幕。 - `WindowManager.LayoutParams.FLAG...
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); ``` 5. **应用程序全屏显示**: 如果希望应用程序全屏显示,可以在`AndroidManifest.xml`的`<activity>`标签中添加`android:theme="@android:style/Theme....
例如,设置`FLAG_KEEP_SCREEN_ON`来保持屏幕常亮,移除该FLAG则让屏幕熄灭: ```java Window window = getWindow(); if (distance ) { window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }...
此外,如果你想在特定条件(如用户停止交互)下恢复屏幕休眠,可以监听用户的触摸事件或者焦点变化,然后移除`FLAG_KEEP_SCREEN_ON`标志。例如: ```java @Override public void onUserInteraction() { super....
- `FLAG_KEEP_SCREEN_ON`保持屏幕常亮。 3. **WindowManager.LayoutParams.softInputMode**:这个属性控制软键盘(虚拟键盘)与窗口的交互方式: - `SOFT_INPUT_ADJUST_RESIZE`窗口大小会随软键盘的出现而改变。...
如果需要屏幕全亮,可以使用FLAG_KEEP_SCREEN_ON或者SCREEN_BRIGHT_WAKE_LOCK: ```java WakeLock wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Lock"); ``` 3. 可选地,你可以...
一种更简单的方法是使用 Window 对象的 addFlags 方法来设置 FLAG_KEEP_SCREEN_ON 标识,从而保持屏幕常亮。这种方法不需要申明权限,并且可以在 Activity 中轻松实现。 下面是一个简单的示例代码,展示了如何使用 ...
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) /** 普通播放 start **/ var url = getIntent().getStringExtra("url"); simple_view .setVideoUrl(url) .setVideoTitle("这...
设置屏幕显示为全屏、高亮 Window window = getWindow(); requestWindowFeature(Window.FEATURE_NO_TITLE);//没有标题 ... window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//高亮
`FLAG_KEEP_SCREEN_ON`会防止屏幕在应用运行时自动关闭,但请注意,这并不意味着设备的电源管理会被完全禁用,用户仍可通过手动操作关闭屏幕。 为了减少重复代码,这些设置可以在基类Activity中处理,或者利用`...
在Activity中,我们可以使用`getWindow()`方法获取到当前Activity的窗口,并设置`FLAG_KEEP_SCREEN_ON`标志。例如,在`onCreate()`方法中,且在`setContentView()`之前添加以下代码: ```java getWindow()....
例如,如果是一个阅读器应用,用户可能期望屏幕保持常亮以便连续阅读,那么在启动阅读界面时启用`FLAG_KEEP_SCREEN_ON`就显得合理。而如果是一个短暂需要防止休眠的场景,如等待用户输入验证码,那么动态设置可能是...