ClassCastException:android.os.Handler$Messenger impl无法强制转换到我的

ClassCastException:android.os.Handler$Messenger impl无法强制转换到我的,android,android-service,classcastexception,android-handler,android-binder,Android,Android Service,Classcastexception,Android Handler,Android Binder,我已在我的服务中声明了一个处理程序: final Messenger messenger = new Messenger(new MusicAPIControlHandler()); public class MusicPlayerBinder extends Binder { public MusicPlayerService getService() { return MusicPlayerService.this; } } @Override publi

我已在我的
服务
中声明了一个
处理程序

final Messenger messenger = new Messenger(new MusicAPIControlHandler());

public class MusicPlayerBinder extends Binder {
    public MusicPlayerService getService() {
        return MusicPlayerService.this;
    }
}

@Override
public IBinder onBind(Intent intent) {
    return messenger.getBinder();
}

public class MusicAPIControlHandler extends Handler {

    @Override
    public void handleMessage(Message msg) {
        //
    }
}
在实现
服务连接
并绑定
服务
的类中,我执行以下操作:

@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
    handler = (MusicPlayerService.MusicAPIControlHandler) iBinder;

}
我的问题是,当我试图将活页夹转换为我的
处理程序时,我得到了一个
ClassCastException
,它实际上应该是它的一个实例,因为它被设置为messenger的活页夹

我哪里做错了


我还没有将我的服务声明为进程

为什么不登录.d iBinder.getClass()?我已经登录了。android.os.Handler$Messenger您不应该使用新的Messenger(iBinder)?我现在就是这么做的,而且它确实有效。谢谢你