티스토리 뷰


CPU 및 Display의 Wake Lock을 쉽게 컨트롤 하는 방법은 아래와 같다.
사용하기 전에 initWakeLock으로 초기화를 해주고
acquireWakeLock/releaseWakeLock 으로 잠금/해제를 해주면 된다.
다 사용하고 나면 destroyWakeLock으로 최종 해제를 해주도록 한다.

WakeLock 으로 컨트롤 할 수 있는 옵션은 아래 표를 참조하자.

Flag Value 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

<!-- androidmanifest.xml -->
<user-permission android:name="android.permission.WAKE_LOCK"></user-permission>

// wake lock
private static WakeLock sWakeLock = null;
    
public static void initWakeLock(Context context) {
    // Lock CPU Sleep
    PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
    sWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, context.getClass().getName());
    sWakeLock.setReferenceCounted(false);
}
    
public static void destroyWakeLock() {
    if (sWakeLock != null) {
        sWakeLock.release();
        sWakeLock = null;
    }
}
    
public static void acquireWakeLock(long timeout) {
    if (sWakeLock != null) sWakeLock.acquire(timeout);
}

 public static void acquireWakeLock() {
    if (sWakeLock != null) sWakeLock.acquire();
}
    
public static void releaseWakeLock() {
    if (sWakeLock != null) sWakeLock.release();
}
댓글