am 2aaa1ce1: Merge "Hold partial wakelock during shutdown to avoid entering sleep"
Merge commit '2aaa1ce1768d3425c07e55d43aaa400282424f8c' into gingerbread-plus-aosp * commit '2aaa1ce1768d3425c07e55d43aaa400282424f8c': Hold partial wakelock during shutdown to avoid entering sleep
This commit is contained in:
committed by
Android Git Automerger
commit
c43189e769
@@ -67,7 +67,8 @@ public final class ShutdownThread extends Thread {
|
||||
private boolean mActionDone;
|
||||
private Context mContext;
|
||||
private PowerManager mPowerManager;
|
||||
private PowerManager.WakeLock mWakeLock;
|
||||
private PowerManager.WakeLock mCpuWakeLock;
|
||||
private PowerManager.WakeLock mScreenWakeLock;
|
||||
private Handler mHandler;
|
||||
|
||||
private ShutdownThread() {
|
||||
@@ -155,20 +156,36 @@ public final class ShutdownThread extends Thread {
|
||||
|
||||
pd.show();
|
||||
|
||||
// start the thread that initiates shutdown
|
||||
sInstance.mContext = context;
|
||||
sInstance.mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
|
||||
sInstance.mWakeLock = null;
|
||||
|
||||
// make sure we never fall asleep again
|
||||
sInstance.mCpuWakeLock = null;
|
||||
try {
|
||||
sInstance.mCpuWakeLock = sInstance.mPowerManager.newWakeLock(
|
||||
PowerManager.PARTIAL_WAKE_LOCK, TAG + "-cpu");
|
||||
sInstance.mCpuWakeLock.setReferenceCounted(false);
|
||||
sInstance.mCpuWakeLock.acquire();
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "No permission to acquire wake lock", e);
|
||||
sInstance.mCpuWakeLock = null;
|
||||
}
|
||||
|
||||
// also make sure the screen stays on for better user experience
|
||||
sInstance.mScreenWakeLock = null;
|
||||
if (sInstance.mPowerManager.isScreenOn()) {
|
||||
try {
|
||||
sInstance.mWakeLock = sInstance.mPowerManager.newWakeLock(
|
||||
PowerManager.FULL_WAKE_LOCK, "Shutdown");
|
||||
sInstance.mWakeLock.acquire();
|
||||
sInstance.mScreenWakeLock = sInstance.mPowerManager.newWakeLock(
|
||||
PowerManager.FULL_WAKE_LOCK, TAG + "-screen");
|
||||
sInstance.mScreenWakeLock.setReferenceCounted(false);
|
||||
sInstance.mScreenWakeLock.acquire();
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "No permission to acquire wake lock", e);
|
||||
sInstance.mWakeLock = null;
|
||||
sInstance.mScreenWakeLock = null;
|
||||
}
|
||||
}
|
||||
|
||||
// start the thread that initiates shutdown
|
||||
sInstance.mHandler = new Handler() {
|
||||
};
|
||||
sInstance.start();
|
||||
|
||||
Reference in New Issue
Block a user