標籤:size cti ice context ase 動作 log system logs
PowerManager類用於對裝置電源狀態進行管理;PowerManager.WakeLock類用於保持裝置常亮;Android中通過各種Lock鎖對電源進行控制,需要注意的是加鎖和解鎖必須成對出現。
使用Activity的生命週期,以調用保持螢幕常亮和釋放螢幕常亮動作。
/** * <功能描述> 保持螢幕常亮 * * @return void [傳回型別說明] */ private void keepScreenWake() { // 擷取WakeLock鎖,保持螢幕常亮 mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); mPowerManager.wakeUp(SystemClock.uptimeMillis()); mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, this .getClass().getCanonicalName()); mWakeLock.acquire(); }
相應的,需要在Activity的onDestory()中釋放螢幕常亮操作。
/** * <功能描述> 釋放WakeLock * * @return void [傳回型別說明] */ private void releaseWakeLock() { if (mWakeLock != null && mWakeLock.isHeld()) { mWakeLock.release(); mWakeLock = null; } }
關於各種Flag的說明,這些Flag主要對CPU、螢幕和鍵盤造成影響:
PARTIAL_WAKE_LOCK:保持CPU運轉,螢幕和鍵盤燈有可能是關閉的;
SCREEN_DIM_WAKE_LOCK:保持CPU運轉,運行保持螢幕顯示但有可能是灰色的,運行關閉鍵盤燈;
SCREEN_BRIGHT_WAKE_LOCK:保持CPU運轉,運行保持螢幕高亮顯示,運行關閉鍵盤燈;
FULL_WAKE_LOCK:保持CPU運轉,保持螢幕高亮顯示,鍵盤燈也保持高亮;
對上述電源管理的設定,需要擷取系統的相關許可權:
<uses-permission android:name="android.permission.DEVICE_POWER" /><uses-permission android:name="android.permission.WAKE_LOCK" />
Android:PowerManager類 電源管理