Android 使用Wake Lock

為了延長(zhǎng)電池的使用壽命,Android設(shè)備會(huì)在一段時(shí)間后使屏幕變暗,然后關(guān)閉屏幕顯示,最后停止CPU。WakeLock是一個(gè)電源管理系統(tǒng)服務(wù)功能,應(yīng)用程序可以使用它來控制設(shè)備的電源狀態(tài)。

WakeLock可以用來保持CPU運(yùn)行,避免屏幕變暗和關(guān)閉,以及避免鍵盤背光燈熄滅。
注意:
創(chuàng)建和使用Wake Lock會(huì)對(duì)應(yīng)用程序造成的電池電量消耗產(chǎn)生顯著的影響。因此,最好只在確實(shí)有必要時(shí)使用Wake Lock,并且使用它們的時(shí)間越少越好,只要有可能就釋放它們。

要?jiǎng)?chuàng)建一個(gè)Wake Lock,需要調(diào)用電源管理器的newWakeLock,并指定一下一種WakeLock類型:

  • FULL_WAKE_LOCK 保持屏幕全亮、鍵盤背光燈點(diǎn)亮和CPU運(yùn)行。
  • SCREEN_BRIGHT_WAKE_LOCK 保持屏幕全亮和CPU運(yùn)行。
  • SCREEN_DIM_WAKE_LOCK 保持屏幕開啟(但是讓它變暗)和CPU運(yùn)行。
  • PARTIAL_WAKE_LOCK 保持CPU運(yùn)行。
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);  
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");  

創(chuàng)建Wake Lock后,可以通過調(diào)用acquire來獲取它??梢杂羞x擇地指定一個(gè)超時(shí)值來確保將在盡可能長(zhǎng)的時(shí)間內(nèi)保持使用Wake Lock。當(dāng)為某個(gè)動(dòng)作使用Wake Lock,而該動(dòng)作做完成時(shí),需要調(diào)用release來讓系統(tǒng)管理電源狀態(tài)。 下面程序顯示了創(chuàng)建、獲取和釋放Wake Lock的一個(gè)典型的使用模式。

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();  

需要權(quán)限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容