標籤:產生 gets start 功能 size miss man bsp 開啟
為了延長電池的使用壽命,Android裝置會在一段時間後使螢幕變暗,然後關閉螢幕顯示,最後停止CPU。WakeLock是一個電源管理系統服務功能,應用程式可以使用它來控制裝置的電源狀態。
WakeLock可以用來保持CPU運行,避免螢幕變暗和關閉,以及避免鍵盤背光燈熄滅。
注意:
建立和使用Wake Lock會對應用程式造成的電池電量消耗產生顯著的影響。因此,最好只在
確實有必要時使用Wake Lock,並且使用它們的時間越少越好,只要有可 能就釋放它們。
螢幕Wake Lock通常用於在使用者觀看螢幕但是很少與螢幕進行互動期間(例如,播放視頻)防止螢幕變暗。
CPU Wake Lock用於防止裝置進入休眠狀態,直至執行了一個操作。當服務從意圖接收器內啟動時常常出現這種情況,因為意圖接收器可能在裝置休眠期間接收意圖。值得注意的是,在這種情況下,系統將在廣播接收器的整個onReceive處理常式中使用CPU Wake Lock。
注意:
如果在廣播接收器的onReceive處理常式中啟動一個服務或廣播一個意圖,那麼有可能在服務
啟動以前,所使用的Wake Lock就會被釋放。為了確保服務能夠執行,需要放置一個獨立的Wake Lock。
要建立一個Wake Lock,需要調用電源管理器的newWakeLock,並指定一下一種WakeLock類型:
* FULL_WAKE_LOCK 保持螢幕全亮、鍵盤背光燈點亮和CPU運行。
* SCREEN_BRIGHT_WAKE_LOCK 保持螢幕全亮和CPU運行。
* SCREEN_DIM_WAKE_LOCK 保持螢幕開啟(但是讓它變暗)和CPU運行。
* PARTIAL_WAKE_LOCK 保持CPU運行。
[java] view plain copy
- PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
- WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
建立Wake Lock後,可以通過調用acquire來擷取它。可以有選擇地指定一個逾時值來確保將在儘可能長的時間內保持使用Wake Lock。當為某個動作使用Wake Lock,而該動作做完成時,需要調用release來讓系統管理電源狀態。 下面程式顯示了建立、擷取和釋放Wake Lock的一個典型的使用模式。
[java] view plain copy
- PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
- WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
- wakeLock.acquire();
- /** Do things requiring the CPU stay active */
- wakeLock.release();
需要許可權:<uses-permission android:name="android.permission.WAKE_LOCK"/>
Android 使用Wake Lock