백그라운드에서 지속적으로 서비스를 실행시키기 위한 서비스이며, 사용자가 동작 중인 사실을 상태 표시줄 (노티피케이션 알림)로 출력하는 서비스이다.
(결국에는 백그라운드에서 동작하는 서비스라는 얘기인데,, 말을 풀어서 쓰는게 어렵,)
다시 본론으로 돌아와서 ForegroundServiceDidNotStartInTimeException 이슈의 경우,,
startForegroundService() API 호출로 포어그라운드 서비스를 실행시키는데,,,, 포어그라운드로 올리려는 서비스 내에서 startForeground()가 5초 이상 호출되지 않으면 발생한다..
- 당연히 5초 이내에 실행될 것이라고 생각하고 있었는데 발생하는 경우가 있었다
startForegroundService()를 통해 서비스를 실행하고 바로 서비스를 종료시키면 발생
분명 누가 같은 메소드에서 실행시키자마자 종료 시켜,,,??라는 생각을 할 수도 있지만 실제로 그런 경우가 존재했고,,
startForegroundService() API가 이미 실행된 순간에는,, 다른 쓰레드나 메소드에서 해당 서비스를 종료시키는 로직은 피해야합니다..
(포어그라운드 서비스를 종료 시켰어도 startForeground()가 실행되지 않으면 무조건 발생합니다,,)