通讯都需要bindservice启动,serviceconnection 进行接口暴露。
本地服务:
1. 通过中间类Binder 获取service引用来调用。
2. 广播。
远程服务:
1.通过Messenger中间类进行相互通讯。
a. 被调用者需要创建有Handler构造器的Messenger对象。
b. 调用者需要创建有IBinder 构造器的Messenger对象。通过Messenger的send方式进行通讯。
2.通过AIDL进行相互通讯。
a. 写aidl文件xxx,定义要通讯的接口。
b. service 中提供aidl定义接口xxx.stub 的实现类。
c. acivity 获取xxx接口引用
3. 广播