wake lock 설정

wake lock을 설정하여 기기를 일시적으로 깨어 있게 유지할 수 있습니다.

종속 항목

앱에 워크 잠금을 설정할 수 있는 WAKE_LOCK 권한이 있어야 합니다. 앱 매니페스트에 권한을 추가합니다.

<uses-permission android:name="android.permission.WAKE_LOCK" />

웨이크락 만들기 및 획득

웨이크락을 획득하려면 다음을 실행합니다.

  1. PowerManager.newWakeLock()를 호출하여 웨이크락을 만듭니다. 이렇게 하면 PowerManager.WakeLock 객체가 생성되고 구성되지만 실제로 기기의 절전 모드는 해제되지 않습니다.

  2. 기기를 깨어 있게 유지하려면 wake lock 객체의 acquire() 메서드를 호출합니다.

예를 들어 앱에 특정 작업용 서비스를 사용하는 broadcast receiver가 포함되어 있다면 다음 코드를 사용하여 wake lock을 설정하고 획득할 수 있습니다.

Kotlin

val wakeLock: PowerManager.WakeLock =
    (getSystemService(Context.POWER_SERVICE) as PowerManager).run {
        newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
            acquire()
        }
    }

자바

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "MyClassName::MyWakelockTag");
wakeLock.acquire();

이 코드의 핵심 사항

코드가 wake lock 객체를 만들 때 클래스 이름을 wake lock 태그의 일부로 사용합니다. wake lock 태그의 일부로 패키지, 클래스 또는 메서드 이름을 포함하는 것이 좋습니다. 이렇게 하면 오류가 발생할 경우 소스 코드에서 웨이크락을 더 쉽게 찾을 수 있습니다. 자세한 내용은 wake lock 이름 지정을 참고하세요.

참고 항목