포그라운드 서비스 문서에서는 Android 포그라운드 서비스의 현재 동작을 설명합니다. 이 문서에서는 Android의 최신 버전을 타겟팅하는지 여부와 관계없이 대부분의 앱에 관한 권장사항을 안내합니다.
이 페이지에서는 포그라운드 서비스의 가장 최근의 중요한 변경사항과 Android 플랫폼의 최신 버전을 타겟팅하지 않는 앱에 미치는 영향을 설명합니다. 대부분의 경우 낮은 API 수준을 타겟팅하는 앱에 선택사항이었던 권장사항이 높은 API 수준을 타겟팅하는 앱에 필수사항이 됩니다.
Android 16 (API 수준 36)
다음 변경사항은 타겟팅하는 API 수준과 관계없이 Android 16 이상에서 실행되는 앱에 적용됩니다.
포그라운드 서비스에서 시작된 백그라운드 작업은 이제 각 런타임 할당량을 준수해야 합니다. 여기에는
JobScheduler로 직접 예약된 작업과 WorkManager 또는DownloadManager와 같은 다른 라이브러리에서 만든 작업이 포함됩니다.사용자 작업에 따라 데이터를 전송하려면 사용자 시작 데이터 전송 작업을 사용하는 것이 좋습니다. 이러한 작업은 일반 작업 할당량에서 제외됩니다.
Android 15 (API 수준 35)
다음 요구사항은 API 수준 35 이상을 타겟팅하는 앱에 적용됩니다.
dataSync포그라운드 서비스가 실행될 수 있는 시간에 관한 새로운 제한사항이 있습니다. 이러한 제한사항은 포그라운드 서비스 제한 시간 동작에 설명되어 있습니다. Android 15의 새로운mediaProcessing포그라운드 서비스 유형에도 유사한 제한사항이 적용됩니다.BOOT_COMPLETED포그라운드 서비스는 더 이상 특정 포그라운드 서비스를 실행할 수 없습니다.SYSTEM_ALERT_WINDOW권한을 보유한 앱은 현재 표시되는 오버레이 창이 있는 경우 (또는 백그라운드 시작 제한사항의 다른 예외 중 하나를 충족하는 경우)에만 백그라운드에서 포그라운드 서비스를 실행할 수 있습니다. 이전에는 이러한 앱의 예외가 더 광범위했습니다.
Android 14 (API 수준 34)
다음 요구사항은 API 수준 34 이상을 타겟팅하는 앱에 적용됩니다.
- 서비스 유형과 함께 모든 포그라운드 서비스를 선언해야 합니다.
- 앱은 포그라운드 서비스가 실행할 작업 유형에 적절한 권한 유형을 요청해야 합니다. 각 포그라운드 서비스 유형
에는 상응하는 권한 유형이 있습니다. 예를 들어 카메라를 사용하는
포그라운드 서비스를 앱에서 실행하는 경우
FOREGROUND_SERVICE및FOREGROUND_SERVICE_CAMERA권한을 모두 요청해야 합니다. 앱이 API 수준 34 이상을 타겟팅하고 적절한 특정 권한을 요청하지 않으면 시스템에서SecurityException을 발생시킵니다.
Android 12 (API 수준 31)
다음 요구사항은 API 수준 31 이상을 타겟팅하는 앱에 적용됩니다.
- 앱이 백그라운드에 있는 동안에는 몇 가지 특정 예외를 제외하고 앱에서 포그라운드 서비스를 실행할 수 없습니다. 자세한 내용과 이 규칙의 예외에 관한 내용은 백그라운드에서 포그라운드 서비스 시작 제한사항을 참고하세요.
Android 11 (API 수준 30)
다음 요구사항은 API 수준 30 이상을 타겟팅하는 앱에 적용됩니다.
- 앱의 포그라운드 서비스에서 카메라 또는 마이크를 사용하는 경우 앱은
서비스를 선언해야 합니다. 서비스 유형은
camera또는microphone입니다.
Android 10 (API 수준 29)
다음 요구사항은 API 수준 29 이상을 타겟팅하는 앱에 적용됩니다.
Android 9 (API 수준 28)
Android 9에서는
FOREGROUND_SERVICE 권한을 도입합니다. 포그라운드 서비스를 사용하는 Android 9에서 실행되는 앱에는 이 권한이 있어야 합니다.
API 수준 28 이상을 타겟팅하는 앱이
포그라운드 서비스를 만들려고 할 때 FOREGROUND_SERVICE
권한을 요청하지 않으면 시스템에서 SecurityException을 발생시킵니다.