본문 바로가기

Android/Service Intro

안드로이드 Service 소개

안드로이드의 주요 프로그램 유형

안드로이드의 AndroidManifest.xml 파일의 <Application> 엘리먼트에 등록될 수 있는 주요 프로그램 유형은 다음과 같은 것들이 있다.

1. Activity

2. Service

3. Receiver

4. Content Provider


여기서는 Service 라는 프로그램에 대해서 알아본다 ( Service 구현 예제는 여기를 참조 )


1. Service 프로그램의 개념

-  이용자와 상호작용 가능한 UI 가 없다.

-  화면에 나타나지 않고 백그라운드에서 실행된다.

-  실행 중인 Activity는 다른 화면에 가려지면 메모리에서 제거될 가능성도 있지만 Service는 화면이 없기 때문에 백그라운드에서 계속 실행된다.

-  다른 Activity나 Receiver에 의해서도 실행될 수도 있고 시스템 부팅시에 자동으로 실행되도록 설정할 수도 있다.

-  다른 Activity나 Receiver에 포함된 Process 안에서 실행될 수도 있고 독립된 Process안에서 실행될 수도 있다.

-  UI 없이 장시간 백그라운드에서 실행되어야 하는 로직을 수행하기에 적합하다.

-  특정 이벤트(메시지, Intent)에 반응하여 다른 Activity에게 메시지를 전달하거나 실행할 수 있다.

-  웹서버에서 실행 중인 서버소켓이 간헐적으로 전달하는 데이터를 무한히 대기하는 시스템도 작성할 수 있다.

-  Service를 사용하지 않고 Activity 안에서 Thread를 구현한다면 그 쓰레드는 Activity의 Life Cycle에 종속되어 제한을 받는다.

-  Service는 Activity의 Life Cycle에 종속되지 않으므로 안드로이드에서 진정한 Multi-Tasking을 구현할 수 있다.

-  백그라운드에서 처리되어야 할 기능을 가진 프로그램에 해당 기능을 제공하는 용도로 주로 사용된다.

-  안드로이드의 Garbage Collector도 시스템이 제공하는 Service 중에 하나이며 Activity의 영향을 받지 않는 특성을 보여주는 예이다.


2. Service의 선언

AndroidManifest.xml 파일에 다음과 같이 선언해야 하고 해당 클래스는 Service클래스를 상속하는 것이 일반적이다.

<service android:name="yourclasss"> 

</service>

Service는 자동으로 실행되는 것이 아니므로 다른 Process에서 실행하거나, 부팅시에 시스템에 의해 독립적인 Process로 실행된다.

 Service 구현 예제는 여기를 참조