常见的我们在app上写入亮屏和灭屏操作如下
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
wacklock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "cn");
wacklock.acquire(); //设置保持唤醒
if(wacklock != null)
{
wacklock.release();
}
接下来我们具体分析下代码流程.
Step 1:
frameworks\base\core\java\android\os\PowerManager.java
public void acquire() {
synchronized (mToken) {
acquireLocked();
}
}
/**
* Acquires the wake lock with a timeout.
* <p>
* Ensures that the device is on at the level requested when
* the wake lock was created. The lock will be released after the given timeout
* expires.
* </p>
*
* @param timeout The timeout after which to release the wake lock, in milliseconds.
*/
public void acquire(long timeout) {
synchronized (mToken) {
acquireLocked();
mHandler.postDelayed(mReleaser, timeout);
}
}
private void acquireLocked() {
if (!mRefCounted || mCount++ == 0) {