安卓手機 APP 開發,有的時候需要屏幕長時間亮著,也就是不鎖屏,這時CPU會一直處于不休眠喚醒狀態。下面介紹兩種方法。
方法一:通過 PowerManager 實現。
此種方法會在軟件安裝時用戶可以看到屏幕選項。
首先,在 AndroidManifest.xml 加入權限:
然后,定義PowerManager 和 WakeLock:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wl = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "MyKeepScreen");
這樣,就可以用以下代碼來實現屏幕常量的切換了:
boolean keepScreen = true || false;
wl.acquire();
if (!keepScreen) {
wl.release();
}
這里需要注意的是 WakeLock 有幾種參數:
PowerManager.FULL_WAKE_LOCK (deprecated推薦使用第一種方式)
PowerManager.SCREEN_DIM_WAKE_LOCK (deprecated推薦使用第二種方式)
PowerManager.SCREEN_BRIGHT_WAKE_LOCK (deprecated推薦使用第三種方式)
PowerManager.PARTIAL_WAKE_LOCK 此參數可以保證CPU正常運行;屏幕和鍵盤燈可以關閉。即使用戶按了電源鍵,CPU依然會運行
方法二:通過 LayoutParams 實現。
這種方法只需要直接在 Activity 的 onCreate() 方法里,添加以下代碼:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
這種方法不需要添加權限,所以在 APP 安裝權限列表是看不到改項。在 Activity 失效時,該功能也同時不起作用。