본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Service 생명주기.

by 돼지왕 왕돼지 2012. 2. 15.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 안드로이드 기본 Component 중 하나인 Service 의 생명주기에 대해 알아보겠습니다.
Service가 무슨 생명 주기가 있냐구요?
함께 보시면 아, Activity 와는 다른 생명주기가 있구나, 하고 아실 수 있으실 겁니다. 
 


서비스가 실행 중이 아니라면 안드로이드가 서비스를 실행 한 후 그 서비스의 onCreate() 와 onStartCommand()를 차례로 호출.
 
서비스가 실행 중이었다면 onStartCommand()만 호출된다.
 
 - 서비스는 액티비티가 없기 때문에 onResume(), onPause(), onStop() 는 호출되지 않는다.
 
 - onBind() 는 Context.bindService() 를 통해서 호출된다.
  이 때 서비스가 실행중이 아니라면 서비스가 생성되면서 onCreate() 호출되고, onStartCommand()는 호출되지 않는다. 
  서비스가 실행 중이었다면 onBind() 외에 아무것도 불리지 않는다.
  보통 onBind() 에서는 IBind 오브젝트를 return 해주고, 클라이언트가 이 IBind 오브젝트를 통해 서비스에 정의된 function들을 호출한다
 
 - onDestroy() 는 보통과 마찬가지로 서비스가 제거되기 직전에 호출된다.
  참고로, Service도 Activity처럼 메모리가 부족할 때 강제 종료된다.
  따라서, 서비스가 재시작할 때 필요한 정보가 있다면 onDestory() 에 저장해야 한다.

 
 
로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글