화면을 켜진 상태로 유지

게임이나 영화 앱 같은 특정 앱은 화면이 켜진 상태를 유지해야 합니다. 일부 Android API는 자동으로 화면을 켜진 상태로 유지합니다. 다른 경우에는 플래그를 설정하여 화면을 수동으로 켜진 상태로 유지할 수 있습니다.

수동으로 화면 켜진 상태 유지하기

기기 화면을 켜진 상태로 유지하려면 활동에서 FLAG_KEEP_SCREEN_ON 플래그를 설정합니다. 이 플래그는 활동에서만 설정할 수 있으며 서비스나 다른 앱 구성요소에서는 설정할 수 없습니다. 예를 들면 다음과 같습니다.

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
}

화면을 켜진 상태로 유지하는 또 다른 방법은 애플리케이션의 레이아웃 XML 파일에서 android:keepScreenOn 속성을 설정하는 것입니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>

android:keepScreenOn="true"를 사용하는 것은 FLAG_KEEP_SCREEN_ON를 사용하는 것과 같습니다. 앱에 가장 적합한 접근 방식을 사용할 수 있습니다. 활동에서 프로그래매틱 방식으로 플래그를 설정하면 나중에 프로그래매틱 방식으로 플래그를 지워 화면을 끌 수 있다는 장점이 있습니다.

FLAG_KEEP_SCREEN_ON 플래그가 있는 앱이 백그라운드로 전환되면 시스템에서 화면이 정상적으로 꺼지도록 허용합니다. 이 경우 플래그를 명시적으로 지울 필요가 없습니다. 앱에서 더 이상 화면을 켜진 상태로 유지할 필요가 없으면 clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)를 호출하여 플래그를 지워야 합니다.

TV의 대기 모드

TV 기기에서는 FLAG_KEEP_SCREEN_ON를 사용하여 활성 동영상 재생 중에 기기가 대기 모드로 전환되지 않도록 합니다. 포그라운드 활동이 FLAG_KEEP_SCREEN_ON를 설정하지 않으면 일정 기간 활동이 없을 때 기기가 자동으로 대기 모드로 전환됩니다.

참고 항목