分两种:
Local Service:不少人又称之为”本地服务“,是指Client - Service同处于一个进程;
Remote Service:又称之为”远程服务“,一般是指Service处于单独的一个进程中;
Remote Service:常用的有两种实现:
Messenger(信使)
使用广播通信,service收到client 请求后放到排队,等出了结果再广播通知给client,client无法在请求或者说调用service接口的时候立刻得到返回值,只能等通知,属于同步非阻塞调用(类似select机制)
Aidl
一种更灵活的通信机制,client与service可以实时交互,实时调用接口,立刻返回结果,属于同步阻塞交互(可以在service的接口内部实现中做成异步非阻塞的实现)