전에 안드로이드 4대 컴포넌트 라는 것을 알아본 적이 있다. 거기에서 나오는 개념 들 중 몇개를 포스팅 해보고자 한다.
화면에 앱이 실행되고 있지 않아도 계속 유지되는 서비스.

애플리케이션의 백그라운드에서 작업이 필요할 경우 방법을 결정하는 방법이다.

대부분의 백그라운드 처리는 WorkManger로 작업예약하는데,

위와 같이 액세스한다.
사용자가 특정 범위를 벗어나거나 상호작용을 완료할 때 종료해야 하는 작업에는 ViewModel과 함께 Kotlin 코루틴을 사용하도록 권장하고 있다.
사용자가 애플리케이션을 백그라운드로 전환하거나 기기를 다시 시작하더라도 즉시 실행해야 하며 지속적인 처리가 필요한 작업의 경우 WorkManager와 장기 실행 작업 지원 기능을 사용하는 것이 좋다.
미디어 재생 또는 활성 탐색과 같은 특정한 경우에는 포그라운드 서비스를 직접 사용하는 것이 좋다.
알람앱같이 정확한 시간에 유저에게 메세지를 보내주어야 한다면 우리는 AlarmManager를 사용할 수 있다.
서비스의 사용 예제는
서비스 공식문서
Midium블로그
에서 확인 할 수 있다.
구글 공식문서에는
Foreground services perform operations that are noticeable to the user.
포그라운드 서비스는 사용자에게 눈에 띄는 작업을 수행합니다.
라고 쓰여있다.
그리고 Android 14 (API 수준 34)부터 포그라운드 서비스를 실행하면 시스템에서 서비스 유형에 따라 특정 기본 요건을 확인한다.
예를 들어 location 유형의 포그라운드 서비스를 실행하려고 하면 시스템은 앱에 이미 ACCESS_COARSE_LOCATION 또는 ACCESS_FINE_LOCATION 권한이 있는지 확인하고 그렇지 않으면 시스템에서 SecurityException이 발생한다고 적혀있다.
포그라운드(foreground) 에는 어떤 특징이 있을까?
백그라운드(Background)와의 차이점은
주의사항은 서비스가 더 이상 필요하지 않은 경우, stopForeground와 stopService를 사용하여 중지해야 한다.
포그라운드 공식문서
참고예제1
참고예제2