在无操作超时休眠执行之前,判断休眠锁,锁的数量为0才允许执行休眠
frameworks\base\services\java\com\android\server\power\PowerManagerService.java
/**
* Handler for asynchronous operations performed by the power manager.
*/
private final class PowerManagerHandler extends Handler {
public PowerManagerHandler(Looper looper) {
super(looper, null, true /*async*/);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_USER_ACTIVITY_TIMEOUT:
//wdh add
if (wdh_DEBUG) {
Log.i(TAG, "mWakeLocks.size(): "+mWakeLocks.size()+"--------");
}
if(mWakeLocks.size()==0){
handleUserActivityTimeoutAdd();
handleUserActivityTimeout();
}
break;
case MSG_SANDMAN:
handleSandman();
break;
case MSG_SCREEN_ON_BLOCKER_RELEASED:
handleScreenOnBlockerReleased();
break;
case MSG_CHECK_IF_BOOT_ANIMATION_FINISHED:
checkIfBootAnimationFinished();
break;
}
}
}