亞寵展、全球寵物產業(yè)風向標——亞洲寵物展覽會深度解析
904
2022-05-29
解決的問題:
這次使用PowerManager是因為我們后臺遠程拍照的時候,不支持手機黑屏情況拍照,如果手機黑屏,然后用PowerManager進行臨時運行CPU
功能介紹:
PowerManager這個類主要是用來控制電源狀態(tài)的. 通過使用該類提供的api可以控制電池的待機時間,一般情況下不要使用。如果確實需要使用,那么盡可能的使用最低級別的WakeLocks鎖。并且確保使用完后釋放它。你可以通過context.getSystemService(Context.POWER_SERVICE)的方式獲得PowerManager的實例。在PowerManager中,最主要的newWakeLock方法,如下:
public WakeLock newWakeLock(int flags, String tag)
{
return new WakeLock(flags, tag);
}
這個方法將創(chuàng)建WakeLock對象,通過調用此對象的方法你就可以方便的去控制電源的狀態(tài)。方法如下:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
屏幕將停留在設定的狀態(tài),一般為亮、暗狀態(tài)
wl.release();
釋放掉正在運行的cpu或關閉屏幕。
下面定義的flag是在newWakeLock方法中要接收的參數,通過該flag,你可以定義系統的電源的展示效果。比如:
*???????????????????????? ? ? ? ? ? ? ? ? ? ? ? cpu?????? screen?????? keyboard
* PARTIAL_WAKE_LOCK????????????? ? on???????? off?????????? off
* SCREEN_DIM_WAKE_LOCK??????? on???????? dim?????????? off
* SCREEN_BRIGHT_WAKE_LOCK?? on???????? bright??????? off
* FULL_WAKE_LOCK????????? ? ? ? ? ? on???????? bright??????? bright
這些flag是相互排斥的,一次只能定義一個。
如果你持有PARTIAL_WAKE_LOCK鎖,不論任何定時器甚至是按下電源按鈕,cpu都將繼續(xù)運行,無法進入休眠狀態(tài)。除非你釋放掉它。
其他鎖的話,雖然cpu也在運行,但是當用戶按下電源按鈕時,設備將立刻進入休眠狀態(tài)。
正常情況下wakelocks實際上是沒有被打開的,當需要時,它將通過特定的flag啟動屏幕和鍵盤。 比如在應用中,涉及到向用戶發(fā)送消息時,需要讓用戶立刻看到。此時會點亮屏幕。當WakeLock鎖被釋放的時候,activity的定時器將被重設,這將導致屏幕亮更長的時間。
Android
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。