안드로이드 서비스(Service)

Code April·2022년 6월 2일
1

안드로이드

목록 보기
3/5

안드로이드 4대 컴포넌트 중에 하나인 서비스에 대해 정리해보려 합니다.

안드로이드 4대 컴포넌트 : 액티비티,서비스,컨텐트 프로바이더,브로드케스트 리시버

참조 URL : https://developer.android.com/guide/components/services?hl=ko

서비스는 앱이 화면에서 보이지 않을때. 즉 사용자와 직접적인 상호작용이 발생하지 않을때도
영속적으로 일을 수행하고 있는 작업을 의미 합니다. 서비스의 종류는 다음과 같습니다.

  1. 안드로이드 서비스의 종류
  • Foreground 서비스
  • Background 서비스
  • Bind 서비스
  1. Foreground 서비스
    서비스 동작중에 진행 사항 또는 서버의 notificaiton등 사용자에게 보여주어야 할, 또는
    인지시켜 주어야할 일을 처리할 때 사용되는 서비스. 따라서 동작 자체는 서비스가 맞으나
    그 결과를 사용자에게 보여주기 위해 status bar에 표시하는 형태로 구현 되어 집니다.
    그리고 사용자는 status bar의 정보를 확인 한 후, 추가 작업을 진행할 수 있습니다.

  2. Background 서비스
    서비스 동작중에 사용자에게 특별히 진행사항등을 전달할 필요가 없을 때 사용.
    Foreground서비스와 반대되는 개념입니다.안드로이드 표준 문서를 보면, 아래와 같이
    언급된 부분을 찾을 수 있습니다.

    앱이 API레벨 26이상을 대상으로 하면, 앱이 포그라운에 있지 않을 때,시스템에서 백그라운드
    서비스에 대한 제한을 적용 합니다.

    이전에 IntenteService를 상속받아서 처리하는 코드의 예제가 많이 있었습니다
    바로 이 방법이 전형적인 Background서비스 방법이였습니다.
    현재는 IntentServiceㄱ deprecated되었고 여러가지 제약이 추가되어
    WorkManager와 같은 다른 방법이 많이 사용되고 있습니다.

  1. Bind서비스
    애플리케이션 구성요소(Activity,Service,Content Provider)가 bindService를 호출하여
    해당 서비스에 바인딩되면 각 구성요소는 클라이언트로써 서버인 서비스에게 요청을 보내고
    응답을 수신하여 프로세스간 통신(IPC)을 수행할 수 있습니다.
    일반적으로 바인드된 서비스는 다른 애플리케이션 구성요소를 도울 때 까지만
    유지되고 백그라운드에서 무한히 실행되지는 않습니다.

애플리케이션 구성 요소중 BroadCast Receiver는 Bind서비스를 지원하지 않습니다.

profile
Next Level

0개의 댓글