一、客户端的工作流程如下:
1.–调用bindService(intent,ServiceConnection,flag),当绑定成功时会回调ServiceConnection的onServiceConnected(ComonentName,Ibinder)方法,其中的Ibinder 为“被绑定的Service”的onBind方法返回的Ibinder对象,此时通过 对Ibinder对象的操作即可完成远程通讯过程。
2.–操作完成时,可调用unbind方法
二、服务端的工作流程:
1.–首次启动会回调Service的onCreate方法
2.–针对第一个绑定的客户端会回调onBind方法,并返回Ibinder对象,以后在同一生命期内都不会再调用此方法
3.–第二个客户端进行绑定,不会加调Service的任何方法,但会回调ServiceConnection中的方法(即对客户端的识别标记为ServiceConnection是否为同一个),也同样会收到Ibinder对象
4.–当客户端调用unbind方法时,会切断stub和proxy间的联系,但不一定会回调onUnbind和onDesroy()方法
5.–客户端的ServiceConnection销毁时也相当于进行了解绑定请求。
6.–只有全部绑定的客户端解除绑定时才回调 onUnbind和onDestroy方法