서비스는 시각적인 사용자 인터페이스를 갖지 않는 대신, 무한정의 시간 동안 백그라운드에서 실행된다. 예를 들어, 사용자가 다른 일을 하는 중에 서비스는 배경음악을 재생한다거나, 네트워크에서 자료를 가져오거나, 무언가를 계산한 후에 결과를 원하는 액티비티에게 돌려줄 수 있다. 각각의 서비스는 Service 클래스를 확장한다.
대표적인 사례는 재생 목록에서 음악을 재생하는 미디어 플레이어이다. 플레이어 애플리케이션은 아마도 사용자가 노래를 선택하고 재생을 시작 있도록 하는 하나 이상의 액티비티를 가질 것이다. 하지만 음악 재생 자체는 액티비티에서 처리하지 못할 것이며, 이는 사용자가 플레이어를 떠나서 다른 작업을 시작하더라도 음악이 계속 재생되기를 원하기 때문이다. 음악이 계속되려면, 미디어 플레이어 액티비티는 백그라운드에서 실행하는 서비스를 시작해야 한다. 서비스를 시작한 액티비티가 화면에서 사라지더라도 이 시스템의 음악 재생 서비스는 계속 실행 중일 것이다.
진행중인 서비스와 (실행중이 아니라면 서비스를 시작해서) 연결하는 것도 가능하다. 연결된 동안에는 서비스가 제공하는 인터페이스를 통해 서비스와 통신할 수 있다. 음악 서비스의 경우, 인터페이스는 사용자가 일시 정지, 되감기, 정지, 재시작 등을 할 수 있는 기능을 제공하게 될 것이다.
액티비티나 다른 구성요소들과 마찬가지로, 서비스는 애플리케이션 프로세스의 주 스레드로 실행된다. 종종 시간이 많이 걸리는 작업 (음악 재생 같은)에 대해서 다른 컴포넌트나 사용자 인터페이스를 차단하지 않기 위해서 다른 스레드를 생성하기도 한다. 다음에, 프로세스와 스레드를 참고할 것.
A service doesn't have a visual user interface, but rather runs in the background for an indefinite period of time. For example, a service might play background music as the user attends to other matters, or it might fetch data over the network or calculate something and provide the result to activities that need it. Each service extends the Service base class.
A prime example is a media player playing songs from a play list. The player application would probably have one or more activities that allow the user to choose songs and start playing them. However, the music playback itself would not be handled by an activity because users will expect the music to keep playing even after they leave the player and begin something different. To keep the music going, the media player activity could start a service to run in the background. The system would then keep the music playback service running even after the activity that started it leaves the screen.
It's possible to connect to (bind to) an ongoing service (and start the service if it's not already running). While connected, you can communicate with the service through an interface that the service exposes. For the music service, this interface might allow users to pause, rewind, stop, and restart the playback.
Like activities and the other components, services run in the main thread of the application process. So that they won't block other components or the user interface, they often spawn another thread for time-consuming tasks (like music playback). See Processes and Threads, later.