2013-08-05 4 views
0

간단한 미디어 플레이어를 구현하지만 핸들러를 사용하여 플레이어를 처리하고 싶습니다. 예를 들어 - 내의 OnClick :처리기에서 안드로이드 핸들 메시지

public void playerControls(View v) { 
    switch (v.getId()) { 
     case R.id.Play: 
      if (!PlayerService.isPlay()) { 
       Log.i(TAG, DeviceHelper.getMethodName() + " Media start play"); 
       play.setImageResource(R.drawable.pause); 
       service.play(); 
       trackTitle.setText(service.getTrackTitle()); 
      } else { 
       Log.i(TAG, DeviceHelper.getMethodName() + " Media pause"); 
       play.setImageResource(R.drawable.play); 
       service.pause(); 
       trackTitle.setText("Paused..."); 
      } 
      break; 
     case R.id.NextTrack: 
      Log.i(TAG, DeviceHelper.getMethodName() + " Next track please"); 
      if (PlayerService.isPlay()) { 
       service.nextTrack(); 
       trackTitle.setText(service.getTrackTitle()); 
      } 
      break; 
     case R.id.PreviousTrack: 
      Log.i(TAG, DeviceHelper.getMethodName() + " Previous track please"); 
      if (PlayerService.isPlay()) { 
       service.previousTrack(); 
       trackTitle.setText(service.getTrackTitle()); 
      } 
      break; 
    } 
} 

그리고 난 이렇게 핸들러, 뭔가 메시지를 전송하려면 : 난 내 논리를 구현하는 다른 클래스에서이 메시지를

case R.id.NextTrack: 
     Log.i(TAG, DeviceHelper.getMethodName() + " Next track please"); 
     if (PlayerService.isPlay()) { 
     Message m = new Message;  
     m.what = MyConstant; 
     handler.sendMessage(m); 
     trackTitle.setText(service.getTrackTitle()); 
     } 
     break; 

을 그리고 처리합니다. 그러나이 구현에서 나는 내 메시지를 보지 못했다.

도움을 제공해 주시겠습니까? Thx

답변

0

메신저를 사용하여 메시지를 보내고 공용 인터페이스를 만들어 콜백을 처리합니다.

public class handlingClient implements MyCallbacks { 
    @Override 
    public void handleMessage(Message msg) { 
     //handles the msg here 
    } 
} 
: 당신은 당신이 할 것 이것을 처리하여 원하는 목적지 그런

final Messenger mMess = new Messenger(new MyHandler)); 

class MyHandler extends Handler { 
    @Override 
    public void handleMessage(Message msg) { 
     switch(msg.what) { 
      case i: 
      if (mCallback != null) 
       mCallback.handleMessage(msg); 
     } 
    } 
} 

:

public interface MyCallbacks { 
    public void handleMessage(Message m); 
} 

그런 다음 메신저를 선언

관련 문제