# ServiceCompat

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1  
Summary:[Constants](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#constants)\|[Methods](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#)  

# ServiceCompat

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public

final

class
ServiceCompat
`  
`

extends Object


``


`

|---|--------------------------------------|
| java.lang.Object                        ||
| ↳ | android.support.v4.app.ServiceCompat |

<br />

*** ** * ** ***

Helper for accessing features in[Service](https://developer.android.com/reference/android/app/Service.html).

## Summary

|                                                                                                                                                                                                                                                                                                 ### Constants                                                                                                                                                                                                                                                                                                  ||
|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int` | [START_STICKY](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#START_STICKY) Constant to return from[onStartCommand(Intent, int, int)](https://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent, int, int)): if this service's process is killed while it is started (after returning from[onStartCommand(Intent, int, int)](https://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent, int, int))), then leave it in the started state but don't retain this delivered intent. |
| `int` | [STOP_FOREGROUND_DETACH](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#STOP_FOREGROUND_DETACH) Flag for[stopForeground(Service, int)](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#stopForeground(android.app.Service, int)): if set, the notification previously provided to[startForeground(int, Notification)](https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification))will be detached from the service.                                                                     |
| `int` | [STOP_FOREGROUND_REMOVE](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#STOP_FOREGROUND_REMOVE) Flag for[stopForeground(Service, int)](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#stopForeground(android.app.Service, int)): if set, the notification previously provided to[startForeground(int, Notification)](https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification))will be removed.                                                                                       |

|                                                                                                                                                                         ### Public methods                                                                                                                                                                          ||
|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` static void` | ` `[stopForeground](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#stopForeground(android.app.Service, int))`(`[Service](https://developer.android.com/reference/android/app/Service.html)` service, int flags) ` Remove the passed service from foreground state, allowing it to be killed if more memory is needed. |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Constants

### START_STICKY

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int START_STICKY
```

Constant to return from[onStartCommand(Intent, int, int)](https://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent, int, int)): if this service's process is killed while it is started (after returning from[onStartCommand(Intent, int, int)](https://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent, int, int))), then leave it in the started state but don't retain this delivered intent. Later the system will try to re-create the service. Because it is in the started state, it will guarantee to call[onStartCommand(Intent, int, int)](https://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent, int, int))after creating the new service instance; if there are not any pending start commands to be delivered to the service, it will be called with a null intent object, so you must take care to check for this.

This mode makes sense for things that will be explicitly started and stopped to run for arbitrary periods of time, such as a service performing background music playback.

<br />

Constant Value: 1 (0x00000001)  

### STOP_FOREGROUND_DETACH

added in[version 25.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int STOP_FOREGROUND_DETACH
```

Flag for[stopForeground(Service, int)](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#stopForeground(android.app.Service, int)): if set, the notification previously provided to[startForeground(int, Notification)](https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification))will be detached from the service. Only makes sense when[STOP_FOREGROUND_REMOVE](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#STOP_FOREGROUND_REMOVE)is**not**set -- in this case, the notification will remain shown, but be completely detached from the service and so no longer changed except through direct calls to the notification manager.

This flag will only work on[N](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#N)and later. It doesn't have any effect on earlier platform versions.

<br />

Constant Value: 2 (0x00000002)  

### STOP_FOREGROUND_REMOVE

added in[version 25.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int STOP_FOREGROUND_REMOVE
```

Flag for[stopForeground(Service, int)](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#stopForeground(android.app.Service, int)): if set, the notification previously provided to[startForeground(int, Notification)](https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification))will be removed. Otherwise it will remain until a later call (to[startForeground(int, Notification)](https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification))or[stopForeground(Service, int)](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#stopForeground(android.app.Service, int))removes it, or the service is destroyed.

<br />

Constant Value: 1 (0x00000001)

## Public methods

### stopForeground

added in[version 25.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void stopForeground (Service service,
                int flags)
```

Remove the passed service from foreground state, allowing it to be killed if more memory is needed.

<br />

|                                                                                                                                                    Parameters                                                                                                                                                     ||
|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `service` | `Service` <br />                                                                                                                                                                                                                                                                                       |
| `flags`   | `int`: Additional behavior options:[STOP_FOREGROUND_REMOVE](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#STOP_FOREGROUND_REMOVE),[STOP_FOREGROUND_DETACH](https://developer.android.com/reference/android/support/v4/app/ServiceCompat#STOP_FOREGROUND_DETACH). <br /> |

**See also:**

- [startForeground(int, Notification)](https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification))  
-

  ## Annotations

  - [NotificationCompat.Action.SemanticAction](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Action.SemanticAction)
-

  ## Interfaces

  - [ActionBarDrawerToggle.Delegate](https://developer.android.com/reference/android/support/v4/app/ActionBarDrawerToggle.Delegate)
  - [ActionBarDrawerToggle.DelegateProvider](https://developer.android.com/reference/android/support/v4/app/ActionBarDrawerToggle.DelegateProvider)
  - [ActivityCompat.OnRequestPermissionsResultCallback](https://developer.android.com/reference/android/support/v4/app/ActivityCompat.OnRequestPermissionsResultCallback)
  - [ActivityCompat.PermissionCompatDelegate](https://developer.android.com/reference/android/support/v4/app/ActivityCompat.PermissionCompatDelegate)
  - [FragmentManager.BackStackEntry](https://developer.android.com/reference/android/support/v4/app/FragmentManager.BackStackEntry)
  - [FragmentManager.OnBackStackChangedListener](https://developer.android.com/reference/android/support/v4/app/FragmentManager.OnBackStackChangedListener)
  - [LoaderManager.LoaderCallbacks](https://developer.android.com/reference/android/support/v4/app/LoaderManager.LoaderCallbacks)
  - [NotificationCompat.Action.Extender](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Action.Extender)
  - [NotificationCompat.Extender](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Extender)
  - [SharedElementCallback.OnSharedElementsReadyListener](https://developer.android.com/reference/android/support/v4/app/SharedElementCallback.OnSharedElementsReadyListener)
  - [TaskStackBuilder.SupportParentable](https://developer.android.com/reference/android/support/v4/app/TaskStackBuilder.SupportParentable)
-

  ## Classes

  - [ActionBarDrawerToggle](https://developer.android.com/reference/android/support/v4/app/ActionBarDrawerToggle)
  - [ActivityCompat](https://developer.android.com/reference/android/support/v4/app/ActivityCompat)
  - [ActivityManagerCompat](https://developer.android.com/reference/android/support/v4/app/ActivityManagerCompat)
  - [ActivityOptionsCompat](https://developer.android.com/reference/android/support/v4/app/ActivityOptionsCompat)
  - [AlarmManagerCompat](https://developer.android.com/reference/android/support/v4/app/AlarmManagerCompat)
  - [AppLaunchChecker](https://developer.android.com/reference/android/support/v4/app/AppLaunchChecker)
  - [AppOpsManagerCompat](https://developer.android.com/reference/android/support/v4/app/AppOpsManagerCompat)
  - [BundleCompat](https://developer.android.com/reference/android/support/v4/app/BundleCompat)
  - [DialogFragment](https://developer.android.com/reference/android/support/v4/app/DialogFragment)
  - [Fragment](https://developer.android.com/reference/android/support/v4/app/Fragment)
  - [Fragment.SavedState](https://developer.android.com/reference/android/support/v4/app/Fragment.SavedState)
  - [FragmentActivity](https://developer.android.com/reference/android/support/v4/app/FragmentActivity)
  - [FragmentContainer](https://developer.android.com/reference/android/support/v4/app/FragmentContainer)
  - [FragmentController](https://developer.android.com/reference/android/support/v4/app/FragmentController)
  - [FragmentHostCallback](https://developer.android.com/reference/android/support/v4/app/FragmentHostCallback)
  - [FragmentManager](https://developer.android.com/reference/android/support/v4/app/FragmentManager)
  - [FragmentManager.FragmentLifecycleCallbacks](https://developer.android.com/reference/android/support/v4/app/FragmentManager.FragmentLifecycleCallbacks)
  - [FragmentManagerNonConfig](https://developer.android.com/reference/android/support/v4/app/FragmentManagerNonConfig)
  - [FragmentPagerAdapter](https://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter)
  - [FragmentStatePagerAdapter](https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter)
  - [FragmentTabHost](https://developer.android.com/reference/android/support/v4/app/FragmentTabHost)
  - [FragmentTransaction](https://developer.android.com/reference/android/support/v4/app/FragmentTransaction)
  - [FrameMetricsAggregator](https://developer.android.com/reference/android/support/v4/app/FrameMetricsAggregator)
  - [JobIntentService](https://developer.android.com/reference/android/support/v4/app/JobIntentService)
  - [ListFragment](https://developer.android.com/reference/android/support/v4/app/ListFragment)
  - [LoaderManager](https://developer.android.com/reference/android/support/v4/app/LoaderManager)
  - [NavUtils](https://developer.android.com/reference/android/support/v4/app/NavUtils)
  - [NotificationCompat](https://developer.android.com/reference/android/support/v4/app/NotificationCompat)
  - [NotificationCompat.Action](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Action)
  - [NotificationCompat.Action.Builder](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Action.Builder)
  - [NotificationCompat.Action.WearableExtender](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Action.WearableExtender)
  - [NotificationCompat.BigPictureStyle](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.BigPictureStyle)
  - [NotificationCompat.BigTextStyle](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.BigTextStyle)
  - [NotificationCompat.Builder](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder)
  - [NotificationCompat.CarExtender](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.CarExtender)
  - [NotificationCompat.CarExtender.UnreadConversation](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.CarExtender.UnreadConversation)
  - [NotificationCompat.CarExtender.UnreadConversation.Builder](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.CarExtender.UnreadConversation.Builder)
  - [NotificationCompat.DecoratedCustomViewStyle](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.DecoratedCustomViewStyle)
  - [NotificationCompat.InboxStyle](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.InboxStyle)
  - [NotificationCompat.MessagingStyle](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.MessagingStyle)
  - [NotificationCompat.MessagingStyle.Message](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.MessagingStyle.Message)
  - [NotificationCompat.Style](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Style)
  - [NotificationCompat.WearableExtender](https://developer.android.com/reference/android/support/v4/app/NotificationCompat.WearableExtender)
  - [NotificationCompatExtras](https://developer.android.com/reference/android/support/v4/app/NotificationCompatExtras)
  - [NotificationCompatSideChannelService](https://developer.android.com/reference/android/support/v4/app/NotificationCompatSideChannelService)
  - [NotificationManagerCompat](https://developer.android.com/reference/android/support/v4/app/NotificationManagerCompat)
  - [RemoteInput](https://developer.android.com/reference/android/support/v4/app/RemoteInput)
  - [RemoteInput.Builder](https://developer.android.com/reference/android/support/v4/app/RemoteInput.Builder)
  - [ServiceCompat](https://developer.android.com/reference/android/support/v4/app/ServiceCompat)
  - [ShareCompat](https://developer.android.com/reference/android/support/v4/app/ShareCompat)
  - [ShareCompat.IntentBuilder](https://developer.android.com/reference/android/support/v4/app/ShareCompat.IntentBuilder)
  - [ShareCompat.IntentReader](https://developer.android.com/reference/android/support/v4/app/ShareCompat.IntentReader)
  - [SharedElementCallback](https://developer.android.com/reference/android/support/v4/app/SharedElementCallback)
  - [TaskStackBuilder](https://developer.android.com/reference/android/support/v4/app/TaskStackBuilder)
-

  ## Exceptions

  - [Fragment.InstantiationException](https://developer.android.com/reference/android/support/v4/app/Fragment.InstantiationException)