文章出处:http://blog.csdn.net/myarrow/article/details/7054589,转载是为自己方便查找。
1. 前面对interface_cast已经进行了详解,为加深理解,现单独把结果抛出来。
它本身是一个模板,如:interface_cast<IMediaPlayer>(reply.readStrongBinder());
2. reply.readStrongBinder());返回的结果是一个新创建的BpBinder对象。
3. interface_cast<IMediaPlayer>(BpBinder);新创建一个BpMediaPlayer对象并返回,且在创建BpMediaPlayer时把BpBinder做为其参数,结果是把BpBinder对象赋值给其基类BpRefBase中的mRemote来保存。
4. BpMediaPlayer对象由MediaPlayer的mPlayer来保存。