[Android]Foreground Service 개념

김정현·2024년 4월 15일

이번 프로젝트가 걷기앱이니 만큼 안드로이드의 4대 컴포넌트 중에 하나인 service를 사용해야 하기때문에 개념에 대해 정리를 해보려고한다.

Service

안드로이드 4대 컴포넌트중에 하나로, 사용자와 상호작용하지 않고 UI이 없이 앱의 백그라운드에서 긴 시간이 걸리는 작업을 수행하며 액티비티의 생명주기에 종속되어 있지 않는 컴포넌트이다.

서비스의 생명주기

Foreground Service

  • Foreground Service는 서비스가 수행하는 동작을 사용자에게 알릴 때 사용한다.
  • Notification을 통해 서비스가 실행되고 있음을 사용자에게 알려야 한다.
  • Foreground Service는 활성화돤 Activity와 동일한 우선순위를 가지므로 시스템에 메모리가 부족해도 시스템에 의해 종료될 가능성이 낮다.
  • 위치 추적 앱 또는 음악 재생 앱에서 주로 사용된다.

Background Service

  • Background Service는 사용자에게 보이지 않고 묵시적으로 실행된다.
  • 앱이 사용 중에 있는 동안 백그라운드에서 수행되어야 하는 작업에 사용된다.
  • API 26 이상부터는 앱이 Foreground에 있지 않을 때 백그라운드 서비스를 사용할 수 없다.
  • 데이터 동기화, 네트워크 요청, DB 업데이트 등이 있다.

Bound Service

  • BoundService액티비티나 프래그먼트(클라이언트)와 같은 컴포넌트가 서비스에 연결하여 통신할 수 있게 해준다.
  • 앱의 다른 부분과 서비스 간에 데이터를 주고받거나, 서비스의 메서드를 호출할 수 있다.
  • bindService()unBindService() 메서드를 사용하여 서비스에 연결하고 해제한다.
  • 하나의 서비스에 다수의 클라이언트가 연결 가능하며 서비스는 바인딩 된 클라이언트가 destroy이 되면 서비스도 소멸된다. (클라이언트의 생명주기에 귀속된다.)
  • 음악 재생 앱에서 음악 재생 서비스를 제어하거나 데이터를 주고받는 경우

마치며

이번에 서비스에 대해 개념을 정리하면서 지금 진행중인 프로젝트에 어떤 서비스를 적용해야할지 감이 잡힌거같다. 이후에 서비스를 적용하고 코드랑 같이 내가 적용한 서비스에 대해 글을 써야겠다

profile
안녕하세요 반갑습니다

0개의 댓글