diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-07-19 15:01:17 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-07-19 15:01:17 -0700 |
commit | ff1baef86c3b34fe2aec33a22bc2d06112af4c03 (patch) | |
tree | 5533a7140a6cfed04bb84d10be68d918ed135d59 /core/java/android/os/PowerManager.java | |
parent | 1825b984b43f51df977280c78ed2136f08c7f7bf (diff) | |
download | frameworks_base-ff1baef86c3b34fe2aec33a22bc2d06112af4c03.zip frameworks_base-ff1baef86c3b34fe2aec33a22bc2d06112af4c03.tar.gz frameworks_base-ff1baef86c3b34fe2aec33a22bc2d06112af4c03.tar.bz2 |
Fix keyguard wake-up issue.
Bug: 6835809
Change-Id: I7a23b50286592b4c4b104b0b6429f2d05fb5e01b
Diffstat (limited to 'core/java/android/os/PowerManager.java')
-rw-r--r-- | core/java/android/os/PowerManager.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 318c0ae..b6e606c 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -542,14 +542,18 @@ public final class PowerManager { private void acquireLocked() { if (!mRefCounted || mCount++ == 0) { + // Do this even if the wake lock is already thought to be held (mHeld == true) + // because non-reference counted wake locks are not always properly released. + // For example, the keyguard's wake lock might be forcibly released by the + // power manager without the keyguard knowing. A subsequent call to acquire + // should immediately acquire the wake lock once again despite never having + // been explicitly released by the keyguard. mHandler.removeCallbacks(mReleaser); - if (!mHeld) { - try { - mService.acquireWakeLock(mFlags, mToken, mTag, mWorkSource); - } catch (RemoteException e) { - } - mHeld = true; + try { + mService.acquireWakeLock(mFlags, mToken, mTag, mWorkSource); + } catch (RemoteException e) { } + mHeld = true; } } |