GoodDay and BadDay

jjunda.egloos.com

포토로그



[Android] Service StartService와 BindService Android

그냥 Service 예제를 찾는거라면 back ^^;

이번에 제가 말씀드릴 Service는 그냥 제가 작업하면서 난관에 걸렸던 부분과.. 해결을 어떻게 했는지 말씀드릴라고 합니다..

일단 애초에 Service를 공부한 목적은 음악player를 만드는데.. back을 누르면 종료되기때문에..

어쩔수 없이 Service를 써서 background에서도 원활히 동작되게 만들어야했습니다.

근데 Service의 호출방식은 2가지가 있죠..

local방식과 remote방식..

local방식은 service자체적으로 돌아가게 만듭니다..

근데 remote방식은.. service와 값을 주고받을수 있는 통로를 갖고 있습니다..

자.. 여기까진 뭐 그냥 다들 아는 내용이죠..

과연 님들이라면은 mp3 player를 background로 돌릴려고 어떤 방식을 쓰겠습니까?

정답은.. 둘을 한꺼번에 써야됩니다.. 아.. 지랄맞게도.. 제가 검색을 못하는건지..

못찾겠더군요.. 그러다가 어느분이 댓글로 단거에서 힌트를 얻어서 테스트해보니. .동작.. 헐..

remote방식만 쓸경우 service를 생성한 activity를 빠져나가면 service destroy됩니다..
(음악같은경우는 계속 돌아갑니다만.. 이걸 컨트롤을 못해서 중복으로 마구마구 실행됩니다..)

당연히 local방식만 쓰면 내부 컨트롤을 못하죠 ㅎㅎ

 @Override
 protected void onResume() {
  // TODO Auto-generated method stub
  super.onResume();
  
  Intent intent = new Intent(this, PlayerService.class);
  startService(intent);
  
  bindService(intent, srvConn, BIND_AUTO_CREATE);
 }

@Override
 protected void onPause() {
  // TODO Auto-generated method stub
  super.onPause();
  unbindService(srvConn);
 }

간단한거 같은데.. local방식과 remote방식 둘다 써야하는걸 찾는데.. 개고생..

저와같은 고생하는분이 없길..

덧글

  • string_skipper 2013/03/25 15:20 #

    정말 감사합니다. 저도 그걸 몰라서 오전 내내 삽질하고 있었는데 ,,정말 감사합니다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.



메모장

곧 봄이다.. 나른나른..

W 위젯