언어

Service.StartForeground 메서드

정의

오버로드

속성 Description
StartForeground(Int32, Notification)

서비스가 시작된 경우(실행 Context#startService(Intent)중) 이 서비스를 포그라운드에서 실행하여 이 상태인 동안 사용자에게 표시할 지속적인 알림을 제공합니다.

StartForeground(Int32, Notification, ForegroundService)

추가 foregroundServiceType 매개 변수가 있는 오버로드된 버전 #startForeground(int, Notification) 입니다.

StartForeground(Int32, Notification)

서비스가 시작된 경우(실행 Context#startService(Intent)중) 이 서비스를 포그라운드에서 실행하여 이 상태인 동안 사용자에게 표시할 지속적인 알림을 제공합니다.

[Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;)V", "")]
public void StartForeground(int id, Android.App.Notification? notification);
[<Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;)V", "")>]
member this.StartForeground : int * Android.App.Notification -> unit

매개 변수

id
Int32

에 따라 NotificationManager#notify(int, Notification) NotificationManager.notify(int, Notification)이 알림의 식별자는 0이 아니어야 합니다.

notification
Notification

표시할 알림입니다.

특성

설명

서비스가 시작된 경우(Context.startService(의도)를 통해 실행) 이 서비스를 포그라운드에서 실행하여 이 상태인 동안 사용자에게 표시할 지속적인 알림을 제공합니다. 기본적으로 시작된 서비스는 백그라운드입니다. 즉, 해당 프로세스에 포그라운드 CPU 예약이 제공되지 않으며(해당 프로세스의 다른 항목이 포그라운드가 아닌 경우) 시스템이 더 많은 메모리를 회수하기 위해 종료해야 하는 경우(예: 웹 브라우저에 큰 페이지를 표시하기 위해) 너무 많은 피해 없이 종료될 수 있습니다. 서비스가 백그라운드 음악 재생을 수행하는 경우와 같이 서비스를 중단하는 경우 startForeground(int, Notification)를 사용하므로 사용자는 음악 재생이 중지되었는지 알 수 있습니다. 이 메서드를 호출해도 이름이 같은 것처럼 들리더라도 서비스가 시작 상태 자체에 배치되지는 않습니다. 먼저 startService(의도)를 호출하여 서비스를 계속 실행해야 한다고 시스템에 지시한 다음, 이 메서드를 사용하여 더 열심히 실행되도록 지시해야 합니다.

API Build.VERSION_CODES 대상으로 하는 앱 P 이상에서는 이 API를 사용하려면 권한 Manifest.permission.FOREGROUND_SERVICE 요청해야 합니다.

SDK 버전 Build.VERSION_CODES 사용하여 빌드된 앱 Q 이상에서는 매니페스트 파일의 서비스 요소에서 R.attr.foregroundServiceType 특성을 사용하여 포그라운드 서비스 유형을 지정할 수 있습니다. 특성 R.attr.foregroundServiceType의 값은 여러 플래그가 함께 ORed될 수 있습니다.

참고: SDK 버전부터 Build.VERSION_CODES. S, SDK 버전을 대상으로 하는 앱이 Build.VERSION_CODES. S 이상에서는 백그라운드에서 포그라운드 서비스를 시작할 수 없습니다. 자세한 내용은 동작 변경 내용: Android 12를 대상으로 하는 앱을 참조하세요. 참고: SDK 버전부터 Build.VERSION_CODES. UPSIDE_DOWN_CAKE SDK 버전을 대상으로 하는 앱이 Build.VERSION_CODES. 매니페스트 특성 R.attr.foregroundServiceType에 유효한 포그라운드 서비스 형식을 지정하지 않고는 UPSIDE_DOWN_CAKE 이상이 포그라운드 서비스를 시작할 수 없습니다. 자세한 내용은 동작 변경 내용: Android 14를 대상으로 하는 앱을 참조하세요.

참고 항목:

Throws: ForegroundServiceStartNotAllowedException API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 S 이상에서는 백그라운드 제한으로 인해 서비스가 포그라운드 서비스로 제한됩니다.

throw: API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 InvalidForegroundServiceTypeException입니다. UPSIDE_DOWN_CAKE 이상이면 매니페스트 특성 R.attr.foregroundServiceType이 잘못된 형식(즉, ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE)으로 설정됩니다.

throw: API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 MissingForegroundServiceTypeException입니다. UPSIDE_DOWN_CAKE 이상 매니페스트 특성 R.attr.foregroundServiceType이 설정되지 않았습니다.

throw: API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 SecurityException입니다. UPSIDE_DOWN_CAKE 이상이며 매니페스트 특성 R.attr.foregroundServiceType에서 지정된 형식으로 포그라운드 서비스를 시작할 수 있는 권한이 없습니다.

에 대한 android.app.Service.startForegroundAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상

StartForeground(Int32, Notification, ForegroundService)

추가 foregroundServiceType 매개 변수가 있는 오버로드된 버전 #startForeground(int, Notification) 입니다.

[Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;I)V", "", ApiSince=29)]
public void StartForeground(int id, Android.App.Notification notification, Android.Content.PM.ForegroundService foregroundServiceType);
[<Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;I)V", "", ApiSince=29)>]
member this.StartForeground : int * Android.App.Notification * Android.Content.PM.ForegroundService -> unit

매개 변수

id
Int32

에 따라 NotificationManager#notify(int, Notification) NotificationManager.notify(int, Notification)이 알림의 식별자는 0이 아니어야 합니다.

notification
Notification

표시할 알림입니다.

foregroundServiceType
ForegroundService

매니페스트 특성 android.R.attr#foregroundServiceType 플래그의 하위 집합 플래그여야 합니다 ServiceInfo#FOREGROUND_SERVICE_TYPE_NONE.

특성

설명

추가 foregroundServiceType 매개 변수가 있는 startForeground(int,Notification)의 오버로드된 버전입니다. SDK 버전 Build.VERSION_CODES 사용하여 빌드된 앱 Q 이상에서는 매니페스트 파일의 서비스 요소에서 R.attr.foregroundServiceType 특성을 사용하여 포그라운드 서비스 유형을 지정할 수 있습니다. 특성 R.attr.foregroundServiceType의 값은 여러 플래그가 함께 ORed될 수 있습니다.

foregroundServiceType 매개 변수는 매니페스트 특성 R.attr.foregroundServiceType에 지정된 항목의 하위 집합 플래그여야 합니다(그렇지 않은 경우 IllegalArgumentException이 throw됨). 매니페스트 특성 foregroundServiceType에 지정된 모든 플래그를 사용하려면 foregroundServiceType 매개 변수를 ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST 지정합니다.

참고: SDK 버전부터 Build.VERSION_CODES. S, SDK 버전을 대상으로 하는 앱이 Build.VERSION_CODES. S 이상에서는 백그라운드에서 포그라운드 서비스를 시작할 수 없습니다. 자세한 내용은 동작 변경 내용: Android 12를 대상으로 하는 앱을 참조하세요. 참고: SDK 버전부터 Build.VERSION_CODES. UPSIDE_DOWN_CAKE SDK 버전을 대상으로 하는 앱이 Build.VERSION_CODES. UPSIDE_DOWN_CAKE 이상은 매니페스트 특성 R.attr.foregroundServiceType에서 유효한 포그라운드 서비스 유형을 지정하지 않고 포그라운드 서비스를 시작할 수 없으며 여기서 foregroundServiceType 매개 변수는 ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE 안 됩니다. 자세한 내용은 동작 변경 내용: Android 14를 대상으로 하는 앱을 참조하세요.

참고 항목:

Throws: ForegroundServiceStartNotAllowedException API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 S 이상에서는 백그라운드 제한으로 인해 서비스가 포그라운드 서비스로 제한됩니다.

throw: API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 InvalidForegroundServiceTypeException입니다. UPSIDE_DOWN_CAKE 이상 매니페스트 특성 R.attr.foregroundServiceType 또는 param foregroundServiceType이 잘못된 형식(i.e.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE)으로 설정됩니다.

throw: API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 MissingForegroundServiceTypeException입니다. UPSIDE_DOWN_CAKE 이상이면 매니페스트 특성 R.attr.foregroundServiceType이 설정되지 않고 param foregroundServiceType이 ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST 설정됩니다.

throw: param foregroundServiceType이 매니페스트 특성 R.attr.foregroundServiceType의 하위 집합이 아닌 경우 IllegalArgumentException입니다.

throw: API를 대상으로 하는 앱이 Build.VERSION_CODES 경우 SecurityException입니다. UPSIDE_DOWN_CAKE 이상이며 foregroundServiceType에서 지정된 형식으로 포그라운드 서비스를 시작할 수 있는 권한이 없습니다. R.attr.foregroundServiceType.

에 대한 android.app.Service.startForegroundAndroid 참조

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상