안드로이드 4대 컴포넌트 중에 하나인 서비스에 대해 정리해보려 합니다.
안드로이드 4대 컴포넌트 : 액티비티,서비스,컨텐트 프로바이더,브로드케스트 리시버
참조 URL : https://developer.android.com/guide/components/services?hl=ko
서비스는 앱이 화면에서 보이지 않을때. 즉 사용자와 직접적인 상호작용이 발생하지 않을때도
영속적으로 일을 수행하고 있는 작업을 의미 합니다. 서비스의 종류는 다음과 같습니다.
Foreground 서비스
서비스 동작중에 진행 사항 또는 서버의 notificaiton등 사용자에게 보여주어야 할, 또는
인지시켜 주어야할 일을 처리할 때 사용되는 서비스. 따라서 동작 자체는 서비스가 맞으나
그 결과를 사용자에게 보여주기 위해 status bar에 표시하는 형태로 구현 되어 집니다.
그리고 사용자는 status bar의 정보를 확인 한 후, 추가 작업을 진행할 수 있습니다.
Background 서비스
서비스 동작중에 사용자에게 특별히 진행사항등을 전달할 필요가 없을 때 사용.
Foreground서비스와 반대되는 개념입니다.안드로이드 표준 문서를 보면, 아래와 같이
언급된 부분을 찾을 수 있습니다.
앱이 API레벨 26이상을 대상으로 하면, 앱이 포그라운에 있지 않을 때,시스템에서 백그라운드
서비스에 대한 제한을 적용 합니다.
이전에 IntenteService를 상속받아서 처리하는 코드의 예제가 많이 있었습니다
바로 이 방법이 전형적인 Background서비스 방법이였습니다.
현재는 IntentServiceㄱ deprecated되었고 여러가지 제약이 추가되어
WorkManager와 같은 다른 방법이 많이 사용되고 있습니다.
애플리케이션 구성 요소중 BroadCast Receiver는 Bind서비스를 지원하지 않습니다.