[Android] Service

강승구·2022년 12월 23일

Service는 안드로이드 4대 컴포넌트 중 하나이며, 사용자와 상호작용하지 않고 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소이다.

Service의 유형

Service는 Foreground Service, Background Service, Bound Service로 나눌 수 있다.

  • Foreground Service
    서비스가 수행하는 동작을 사용자에게 알릴 때 사용하며, Notification을 통해 서비스가 실행되고 있음을 알려준다. 예를 들어 음악 플레이어의 경우 현재 재생중인 음악 등의 정보를 Notification에 표시한다. Foreground Service는 활성화된 액티비티와 동일한 우선순위를 가지므로 시스템에 메모리가 부족하더라도 강제 종료될 확률이 낮다.

  • Background Service
    사용자에게 보이지 않는 백그라운드 작업을 수행하며, 시스템 리소스가 부족할 경우 강제 종료될 수 있다. API 25 이상부터는 앱이 Foreground에 있지 않을 때 백그라운드 서비스를 강제로 종료 시킨다.

  • Bound Service
    IBinder라는 인터페이스로 서버-클라이언트 관계처럼 서비스와 상호작용한다. 여러 프로세스에서 같은 서비스에 바인딩하여 작업 수행 가능하며, 프로세스 간 통신 (IPC)을 수행 할 수 있다. Bound Service는 여기에 바인딩된 컴포넌트들이 전부 바인딩 해제되면 서비스가 소멸 된다.


Service의 생명주기

profile
강승구

0개의 댓글