본문 바로가기

프로그래밍/Android

Service 정리


Android Service 엔 3가지가 있다.

BackgroundService BindService ForegroundService

- BackgroundService : 앱을 꺼도 백그라운드에서 실행할 수 있는 작업
- BindService : Activity 와 같은 컴포넌트와 상호작용할 수 있는 작업 
- ForegroundService : 다른 앱 뒤에서 동작 할 수 있는 작업, 알림을 표시해야 한다.
Android 12 이상일 경우 알림을 10초간 보여주지 않고 기다린다. 

- API 26 (Android 8.0) 이상일때, 앱이 포그라운드에 있을때 백그라운드 서비스 생성, 호출이 제한된다. 서비스 실행시 startForegroundService() 함수를 써야한다. BroadcastReceiver 처럼 백그라운드에서 동작하는 작업은 ForegroundService 를 실행해야한다. 서비스 실행시 서비스에서 startForeground() 를 하여 알림(Notification) 을 등록해야한다. 
- API 31 (Android 12) 이상일 경우 백그라운드에서 ForegroundService 실행이 제한된다. 실행하기 위해 WorkManager 나 AlarmManager 를 사용해야 한다. 

* 백그라운드 작업 유형
WorkManager: 즉시 실행하거나, 정기적인 작업, 지연된 작업 
AlarmManager : 정시에 실행되어야 하는 작업