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)?我现在就是这么做的,而且它确实有效。谢谢你