binder

aidl
服务端
1,创建服务,定义接口,对应的aidl文件,服务类AIDLService
2,构建内部类继承binder,继承于ImusicService.Stub。实现aidl中的接口、方法,并通过onBind返回binder对象给客户端。

客户端
1,拷贝IService工程下的aidl文件到IClient
2,创建activity,注册接口ImusicService
3,创建链接对象ServiceConnection
实现两个回调方法:
onServiceConnected()
系统调用这个来传送在service的onBind()中返回的IBinder。
将IBinder类型的对象转换成我们的ImusicService类型,不能强转需要用ImusicService.Stub.asInterface
OnServiceDisconnected()
Android系统在同service的连接意外丢失时调用这个,比如当service崩溃了或被强杀了。当客户端解除绑定时,这个方法不会被调用。
4,设置隐式启动Intent,绑定服务bindService
5,调用接口的ImusicService的方法,实现交互
6,在onDestroy方法中注销

你可能感兴趣的:(binder)