天天看點

Android 設定螢幕不待機

轉自:http://blog.csdn.net/yudajun/article/details/7748760

最近做項目時正好用到,進行了一下總結:

Android設定支部待機有兩種方法

第一種簡單通過設定WindowManager屬性實作:

在Activity oncreat()方法中設定

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

第二種使用android的PowerManager和PowerManager.WakeLock實作:

//添加鎖

[java]  view plain copy

  1. private void acquireWakeLock() {  
  2.          if (wakeLock == null) {  
  3.                 Logger.d("Acquiring wake lock");  
  4.                 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);  
  5.                 wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());  
  6.                 wakeLock.acquire();  
  7.             }  
  8.     }  
  9. //釋放鎖  
  10. private void releaseWakeLock() {  
  11.         if (wakeLock != null && wakeLock.isHeld()) {  
  12.             wakeLock.release();  
  13.             wakeLock = null;  
  14.         }  
  15.     }  

acquireWakeLock()方法在Activity的 onResume中被調用。releaseWakeLock()方法在Activity的 onPause中被調用。利用Activiy的生命周期,巧妙的讓 acquire()和release()成對出現。

關于int flags

各種鎖的類型對CPU 、螢幕、鍵盤的影響:

PARTIAL_WAKE_LOCK:保持CPU 運轉,螢幕和鍵盤燈有可能是關閉的。

SCREEN_DIM_WAKE_LOCK:保持CPU 運轉,允許保持螢幕顯示但有可能是灰的,允許關閉鍵盤燈

SCREEN_BRIGHT_WAKE_LOCK:保持CPU 運轉,允許保持螢幕高亮顯示,允許關閉鍵盤燈

FULL_WAKE_LOCK:保持CPU 運轉,保持螢幕高亮顯示,鍵盤燈也保持亮度

最後不要忘記!

要進行電源的操作需要在AndroidManifest.xml中聲明該應用有設定電源管理的權限。

<uses-permission android:name="android.permission.WAKE_LOCK" />
你可能還需要
<uses-permission android:name="android.permission.DEVICE_POWER" />      

繼續閱讀