본문 바로가기
안드로이드

[Android] Foreground

by 코딩히어로 2021. 10. 11.
728x90

제목


안드로이드 시스템이 업데이트됨에 따라 OS가 슬립모드로 진입 시

 

백그라운드 등의 동작이 정지되도록 시스템이 변경되었습니다.

 

분명 사용자가 Application을 사용하지 않는 시점에서도 서비스가 돌아야 하거나

 

처리해야 되는 로직 등이 있다면 시스템이 슬립모드에 들어가더라도 동작해야 되겠지요.

 

하지만 현재 안드로이드 최신 OS에서는 그런 방법은 여러 가지 편법을 동원해서 우회하거나

 

하는 식의 방법을 쓰는 거 말고는 없는 것으로 보입니다.

 

그래서 Foreground를 활성화하는 방식을 사용해서 슬립모드에 들어가더라도

 

동작은 될 수가 있는데 단 한 가지 아쉬운 점은 Foreground실행 시에는 상태 표시줄에

 

Application이 표시된다는 점입니다.

 

현재 저는 Application 이름을 예로 들어 코딩 히어로라고 했을 때

 

상태 표시줄에 코딩히어로 서비스 제공 중 정도의 문구를 표현하는 방식을 사용하고 있습니다.

 

자 그럼 간단하게 Foreground를 실행하는 방법에 대해 알아보겠습니다.

 


먼저 Manifests 파일에 permission을 추가해줍니다.

 

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

 

해당 프로젝트에서는 Foreground Service를 이용하기 때문에 별도로 service class를

 

추가해서 application에 추가해 주어야 합니다.

 

저는 ForegroundService라는 Class를 생성한 뒤에 Manifests의 application내에 추가해 주었습니다.

 

<service android:name="com.example.android.smartlight.ForegroundService" android:enabled="true"/>

 

여기까지 하면 Foreground Service를 실행할 준비가 되었습니다.

 

간단하지 않나요??

 

자 마지막으로 Foreground Service를 정의해 주도록 하겠습니다.

 

설명1
설명2

이렇게 Foreground를 실행해줄 서비스를 정의하고 Application이 실행되는

 

곳에서 Foreground를 호출해주시기만 하면 끝입니다.

 

설명3

자 이제 안드로이드가 슬립모드에 들어가도 실행되는 Foreground Application이 완성되었습니다.

 

Application이 종료되어도 실행할 코드는 Foreground에 넣어 사용하시면 됩니다.

728x90
반응형

'안드로이드' 카테고리의 다른 글

[Android] 데이터 저장 SharedPreferences  (0) 2021.10.20
[Android] 핸들러란?  (0) 2021.10.13
[Android] NFC란?  (0) 2021.10.08
[Android] Http 통신  (0) 2021.10.07
[Android] 카메라로 읽은 이미지 고화질로 가져오기  (1) 2021.09.06

댓글