保持屏幕清醒可以通过使用唤醒锁来完成
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
getClass().getName());
Run Code Online (Sandbox Code Playgroud)
或者通过将FLAG_KEEP_SCREEN_ON添加到窗口,
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
两者之间在性能和电池寿命方面的技术差异是什么?
mib*_*lma 43
唤醒锁可以让您获得更多控制权(例如,在不关闭屏幕的情况下唤醒手机以下载内容)并要求您的应用程序保留唤醒锁许可.
因此FLAG_KEEP_SCREEN_ON,如果您想要的是在窗口可见时保持屏幕开启,则建议使用此选项.
Wakelock含糊不清,因为它有许多不同的选择。该标志FLAG_KEEP_SCREEN_ON仅这样做。
| Flag Value | CPU | Screen | Keyboard |
-----------------------------------------------------
| PARTIAL_WAKE_LOCK | On* | Off | Off |
| SCREEN_DIM_WAKE_LOCK | On | Dim | Off |
| SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off |
| FULL_WAKE_LOCK | On | Bright | Bright |
Run Code Online (Sandbox Code Playgroud)
请参阅唤醒锁或PowerManager for Android的详细信息,以及有关确切实现的其他答案。
唤醒锁用于后台服务,以在屏幕关闭时保持 CPU 运行以完成工作。您永远不应该在活动中使用唤醒锁。要使用唤醒锁,必须在应用程序的清单文件中添加 WAKE_LOCK 权限。
FLAG_KEEP_SCREEN_ON用于在Activity中保持屏幕打开,这也将在没有任何特殊权限的情况下保持 CPU 开启,这与唤醒锁不同。您永远不应该在服务中使用 FLAG_KEEP_SCREEN_ON。
干杯!
| 归档时间: |
|
| 查看次数: |
19036 次 |
| 最近记录: |