본문 바로가기

프로그래밍/안드로이드

컴포넌트 #2 - 서비스


네 가지의 컴포넌트 중 두번째인 서비스 컴포넌트 입니다.

서비스는 보여지는 사용자 인터페이스(UI) 를 가지지 않고 백 그라운드(background)에서 실행되는 컴포넌트 입니다.

무슨 말인고 하니... 서비스는 사용자가 다른 작업을 하는 중에도 백 그라운드에서 음악을 재생하거나 데이터를 처리하는 등의 작업을 하는 역할이죠. 또한 어떤 결과를 처리하여 그것을 원하는 액티비티에게 제공할 수도 있습니다.

각각의 서비스는 Service 클래스를 상속합니다.



음악을 재생하는 음악재생 플레이어는 서비스의 일종인데, 사용자가 음악을 선택하고 재생, 되감기, 다음곡 등의 작업을 할 수 있는 하나 또는 여러개의 액티비티가 있을 수 있겠죠.

하지만 음악을 재생하는 그 자체는 액티비티에 의해 제어되면 안됩니다.

왜냐하면 사용자가 음악 플레이어 화면을 벗어나서 다른 작업 중에도 음악은 계속 재생되어야 하기 때문이죠. 그렇게 되기 위해서는 액티비티는 백 그라운드에서 실행되는 하나의 서비스를 시작해야 됩니다.

실행되고 있는 서비스에 접속하거나 서비스를 실행하여 접속하는 것도 가능합니다.
음악 재생 플레이어라면 서비스에 접속하여 음악을 멈추거나, 재생하거나, 다음곡으로 넘어가는 등의 UI를 통해 사용자와 서비스가 커뮤니케이션 할 수 있게 됩니다.

액티비티와 다른 컴포넌트들 처럼 , 서비스도 어플리케이션 프로세스의 메인 스레드 내에서 실행되는데요, 서비스가 다른 컴포넌트의 방해를 받지 않기 위해 또 다른 스레드를 만들어서 작동하기도 합니다.

출처 : http://underclub.tistory.com/265