android 保持螢幕常亮和喚醒螢幕的方式
一、引言
Android開發中會用到將應用的螢幕保持常亮,比如播放視訊、音樂等,如果總是使用者去觸控式螢幕幕來保持螢幕常亮,那麼使用者體驗會很差;
二、實現方式
通過設定Window Flag(最簡單,推薦)
通過PowerManager
第一種方式:
[java] view plain copy
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
此種方式在退出Activity的時候將不再起作用
第二種方式:
[java] view plain copy
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, “mytag”);
//記得在onResume方法中呼叫
mWakeLock.acquire();
//記得在onPause方法中呼叫
mWakeLock.release();
這裡需要注意的是newWakeLock的引數,
PowerManager.FULL_WAKE_LOCK (deprecated推薦使用第一種方式)
PowerManager.SCREEN_DIM_WAKE_LOCK (deprecated推薦使用第一種方式)
PowerManager.SCREEN_BRIGHT_WAKE_LOCK (deprecated推薦使用第一種方式)
PowerManager.PARTIAL_WAKE_LOCK 此引數可以保證CPU正常執行;螢幕和鍵盤燈可以關閉。即使使用者按了電源鍵,CPU任然會執行。
兩種方式可以根據不同的需要來參考使用。另外提供一種喚醒螢幕並解除螢幕鎖的方式參考程式碼如下:
[java] view plain copy
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);