티스토리 뷰

SoftWare/안드로이드

Andorid - Service

White Whale 2016. 3. 4. 00:04
728x90

Android Service는 백그라운드에서 실행되는 프로세스입니다.
안드로이드 OS에서 특별한 경우를 제외하고는 백그라운드에서 동작하도록 설계되어 있습니다.
대표적인 예로는 MP3 Player과 카카오톡 메세지 수신입니다.

1. 서비스(Service) - StartService()


서비스는 백스라운드에서 동작을 하지만 기본 어플리케이션 즉 프로세스안에서 동작을 합니다. 그리고 프로세스 안 다른 컴포넌드들과 유기적으로 통신을 합니다.

 

2. 서비스(Service) - BindService()


 

서비스는 프로세스 내에서 다른 컴포넌트들과 서로 유기적으로 통신하는것 뿐만 아니라 다른 앱 즉 다른 프로세스와도 Data 공유 및 통신을 할 수 있습니다. 대표적인 예로서 다른 어플리케이션에서 어떠한 신호가 발생하였을때 서비스가 반응하여 동작합니다.

 

3. 서비스(Service)의 Life Cycle


아래 그림과 같이 실질적인 서비스로 백그라운드에서 동작하는 함수는 onStartCommand()입니다.

 

4. 서비스(Service) - onStartCommand()


Service는 기본적으로 프로세스(앱)이 종료되더라도 다시 살아나는 구조로 되어있습니다. 종료된 Service는 onCreate() -> onStartCommand()순으로 주기를 타는데 살아있을 때 또 부르면 onCreate()를 거치지 않고 onStartCommand()로 바로 옵니다.
onStartCommand() 메서드는 3가지 리턴 타입이 있는데 아래와 같습니다.

 

 

6. 서비스(Service) 시작, 중지, 종료하기


 

 

 

7. 서비스(Service) 기본 메서드


서비스를 생성하면 onBind함수가 오버라이드 되어 있습니다. 여기에 아래 그림과 같이 제일 기본적인 함수 3개를 Code -> OverrideMethods에서 추가할 수 있습니다.

 

1. onCreate() : 서비스가 처음 생성될 때 수행되는 메서드
2. onStartComand() : 백그라운드에서 실행되는 동작들이 들어가는 곳입니다.
3. onDestroy() : 서비스가 종료될 때 실행되는 함수가 들어갑니다.
4. onBind() : bindService()를 호출해서 서비스와 연결을 시도하면 이 메소드가 호출됩니다.

  

8. 서비스(Service) 예제


Service만으로 구현을 하면 Log로만 확인할 수 있어 알림과 복합적으로 만들어 보았습니다.
http://twinw.tistory.com/50에 코드 및 설명해 두었습니다.

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함