flowbird
flowbird
2017-03-03 09:49

AIDL写远程服务的时候,Service的onBind返回值类型的问题

1
  • binderproxy
  • android
  • binder
  • aidl

比如我写了个远程Service
public class TestService extends Service {
private IBinder mBinder=new ITest.Stub(){
@Override
public int show(int num1, int num2) throws RemoteException {
return num1+num2;
}
};
@Nullable
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}

ITest.Stub就是AIDL工具生产的一个类。

我们在activity中bindservice时候,肯定会有public void onServiceConnected(ComponentName name, IBinder service)这个函数,这个service我debug显示是个BinderProxy,他也应该是这个类型的!

但是我追Bindservice源码的时候自己却矛盾了,因为我发现这个public void onServiceConnected函数的IBinder类型的service这个参数,其实就是我上面写的service的onbind方法的返回值。可是我onbind返回的是一个iTest.Stub extends Binder,那不应该是个binder类么??怎么就成了BinderProxy了?我也没找到哪里转换,或者构建的。

求大神解惑

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换