본문 바로가기
Programming/Android Java

WakeLock release

by 개Foot/Dog발?! 2014. 7. 25.

URL : http://nonstop.pe.kr/android/1612


.....


클래스 사용예)

1) 자동 릴리즈 :

WakeUpScreen.acquire(getApplicationContext(), 10000); //10초후 자동릴리즈 



2) 수동 릴리즈 :

WakeUpScreen.acquire(getApplicationContext());
        ..screen will stay on during this section..
WakeUpScreen.release(); 


WakeUpScreen.java

import android.content.Context;
import android.os.PowerManager;
 
/**
 * 스크린을 ON한다. 젤리빈 4.2부터는 getWindows() 권장
 * @author IKCHOI
 *
 */
public class WakeUpScreen {
 
    private static PowerManager.WakeLock wakeLock;
 
    /**
     * timeout을 설정하면, 자동으로 릴리즈됨
     * @param context
     * @param timeout
     */
    public static void acquire(Context context, long timeout) {
 
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        wakeLock = pm.newWakeLock(
                PowerManager.ACQUIRE_CAUSES_WAKEUP  |
                PowerManager.FULL_WAKE_LOCK         |
                PowerManager.ON_AFTER_RELEASE
                , context.getClass().getName());
 
        if(timeout > 0)
            wakeLock.acquire(timeout);
        else
            wakeLock.acquire();
 
    }
 
    /**
     * 이 메소드를 사용하면, 반드시 release를 해줘야 함
     * @param context
     */
    public static void acquire(Context context) {
        acquire(context, 0);
    }
 
    public static void release() {
        if (wakeLock.isHeld())
            wakeLock.release();
    }
}