프로그래밍/Android
Service 정리
showmiso
2022. 12. 20. 12:24
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 : 정시에 실행되어야 하는 작업