참조 URL
기기를 켜진 상태로 유지 | Android 개발자 | Android Developers

 

기기를 켜진 상태로 유지하기 위한 적절한 API 선택  |  Background work  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 기기를 켜진 상태로 유지하기 위한 적절한 API 선택 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 사

developer.android.com

 

방법1

//화면 절전모드 해제 ---1
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

//화면 절전모드 해제 취소 ---2
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

화면 절전모드 해제를 하는 경우 해당 Activity에 있는동안은 화면이 계속 켜진다.

화면 절전모드 해제 취소를 하는 경우엔 절전모드가 해제된다.

화면이 절전이 된 상태에서 해당 코드를 실행하면 화면이 다시 밝아짐

해당 Activity가 종료되면 다시 기기설정을 따름

 

방법2

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

해당 Activity의 xml에 keepScreenOn=”true”값을 설정해 준다.

 

 

특징

이 접근 방식의 장점은 wake lock(CPU를 켜진 상태로 유지 참조)과 달리 특정 권한이 필요하지 않고 앱이 사용하지 않는 리소스를 해제할 필요 없이 사용자가 애플리케이션 간에 이동할 수 있도록 플랫폼이 올바르게 관리한다는 것입니다.

 

참고

실행 중인 애플리케이션에서 계속 화면이 켜져 있을 필요가 없다면(예를 들어, 특정 시간 동안 활동이 없을 때 화면을 타임아웃하려는 경우) FLAG_KEEP_SCREEN_ON플래그를 삭제하지 않아도 됩니다. 창 관리자는 앱이 백그라운드로 이동하거나 포그라운드로 돌아갈 때 올바른 작업을 하도록 확인합니다. 하지만, 명시적으로 플래그를 삭제하여 화면이 꺼지도록 하려면 다음과 같이 clearFlags() 를 사용합니다. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Issue

코틀린 버전을 올렸더니 해당 오류가 발생하면서 디버깅이 되지 않는 문제가 생겼다

Cause

-Xallow-result-return-type플래그는 코틀린 컴파일러에서 더이상 지원되지 않거나 해당 버전에서 사용할 수 없다는 오류이다.

Solution

-Xallow-result-return-type플래그를 build.gradle에서 삭제 해 준다.

kotlinOptions {
freeCompilerArgs += "-Xallow-result-return-type"  //build.gradle(app)에 해당 코드가 있으면 삭제
}

freeCompilerArgs는 Kotlin Compiler에 전달할 추가적인 옵션을 지정하는 설정이다.

빌드를 설정할 때 Kotlin Compiler의 기본 설정 외에 사용자가 원하는 특정 컴파일 옵션을 설정할 수 있게 한다.

코드 수정을 다 하고 깃허브에 커밋을 하려고 하는데 타이틀 제목과 같은 오류가 발생했다.

What is the Cause of Error?

들여쓰기가 되어 블록안의 구문이 실행되지 않는 오류

Solution

  1. Ctrl+Alt+L (전체 간격 자동 정렬)
  2. 수동으로 간격을 조절

오류 발생 원인

프로젝트에서 사용중인 JDK버전과 Gradle버전이 일치하지 않아서 생기는 문제이다. 

사용중인 JDK버전에 맞춰 Gradle버전을 사용해준다.

 

해결 방법

JDK 버전최소 지원 Gradle 버전비고

JDK Version Gradle Version Remarks
JDK 8 Gradle 2.0 현재 대부분 호환됨
JDK 9 Gradle 4.3 일부 기능 제한 가능
JDK 10 Gradle 4.7 빠르게 지원 종료됨
JDK 11 Gradle 5.0 장기지원 LTS
JDK 12 Gradle 5.4 짧은 생명주기
JDK 13 Gradle 6.0 실험적 지원 포함
JDK 14 Gradle 6.3 빠른 종료
JDK 15 Gradle 6.7 빠른 종료
JDK 16 Gradle 7.0 Gradle 7부터 성능 향상
JDK 17 Gradle 7.3 LTS, 안정적인 조합
JDK 18 Gradle 7.5 실험적이지만 대부분 작동
JDK 19 Gradle 7.6 테스트 및 실험 목적
JDK 20 Gradle 8.1 완전한 안정성은 아직
JDK 21 Gradle 8.4 LTS, Gradle 공식 지원
JDK 22 Gradle 8.7 이상 최신 실험적 지원
dependencies{
classpath 'com.android.tools.build:gradle:7.4' //해당 gradle버전을 맞춰준다

 

내 프로젝트 버전 확인 하는 방법

JDK

→ Terminal에서 다음 명령어 실행 → java -version

 

Gradle

→ gradle-wrapper.properties → distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip

 

AGP(Android Gradle Plugin)

→build.gradle(Project) → classpath 'com.android.tools.build:gradle:8.3.1'

+ Recent posts