홍드로이드의 야매코딩

[ Android ] 현재까지 나온 Foreground Service 실행 제한사항 총정리 본문

Android Honey Tip

[ Android ] 현재까지 나온 Foreground Service 실행 제한사항 총정리

홍드로이드 2023. 2. 23. 21:31
  • 안드로이드 8.0 (API 레벨 26) 이상: 안드로이드 8.0 이상에서는 Foreground Service를 시작하려면 Notification을 필수적으로 생성해야 합니다. 이전에는 Notification이 없어도 Foreground Service를 시작할 수 있었지만, 안드로이드 8.0부터는 이러한 방식을 금지합니다. 또한 Foreground Service를 사용할 경우 5초 내에 startForeground() 메소드를 호출하지 않으면 ANR(Application Not Responding)이 발생할 수 있습니다. 따라서 Foreground Service를 사용할 때는 반드시 Notification을 생성하고 startForeground() 메소드를 즉시 호출해야 합니다.

 

  • 안드로이드 9.0 (API 레벨 28) 이상: 안드로이드 9.0 이상에서는 Foreground Service를 사용할 때 Foreground Service가 포그라운드에서 실행 중인 경우에만 사용자가 알림을 표시할 수 있습니다. 이전 버전에서는 Foreground Service가 백그라운드에서 실행 중인 경우에도 알림을 표시할 수 있었지만, 안드로이드 9.0 이상에서는 Foreground Service가 포그라운드에서 실행 중인 경우에만 표시할 수 있습니다.

 

  • 안드로이드 10.0 (API 레벨 29) 이상: 안드로이드 10.0 이상에서는 Foreground Service의 실행 시간이 제한됩니다. 앱이 백그라운드에 있을 때 Foreground Service가 실행되는 경우, 시스템은 Service의 실행 시간을 최대 5분으로 제한합니다. 이 시간이 초과되면 Service는 시스템에 의해 중지됩니다. 따라서 Foreground Service가 오랫동안 실행되어야 하는 경우에는 작업을 나누고, 각각을 별도의 Foreground Service로 실행하는 것이 좋습니다.

 

  • 안드로이드 11.0 (API 레벨 30) 이상: 안드로이드 11.0 이상에서는 Foreground Service의 제한이 더욱 강화되었습니다. Foreground Service가 실행 중인 경우에도 시스템이 자동으로 종료시킬 수 있으며, 시스템 자원의 부족 상황에서는 Foreground Service를 중지할 수 있습니다. 이러한 변경 사항은 배터리 수명을 연장하기 위한 것이며, Foreground Service를 사용하는 앱은 이를 고려하여 설계되어야 합니다.
Comments