Binder通信机制说来简单,但是在使用的过程的遇到了一些问题,最后终于解决了,在这总结一下,一并分享给大家:
1、要使用Binder通信,首先要定义接口,然后实现服务端BnInterface***和客户端BpInterface***,说到底一个是把参数解包,一个是把参数打包。
2、服务端要能够接收Binder调用请求,要具备两个条件:一个是实现Bn接口,另一个是调用IPCProcess()-》self->startThreadPool()
IPCThread()->Self->joinThreadPool();
这两句话非常关键,因为他启动了一个线程在后台,负责读取Binder接口调用的请求,然后调用具体接口,如果没有这个线程,你的服务是收不到调用请求的,客户端会调用失败(died)。
对于客户端也一样,如果要支持回调,也必须要启动读取Binder调用的线程,否则,回调失败。
相关文章
- Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
- Linux进程间通信IPC学习笔记之消息队列(SVR4)
- Android开发之Touch事件分发机制
- Java基础知识强化之网络编程笔记17:Android网络通信之 使用Http的Post方式读取网络数据(基于HTTP通信技术)
- Java基础知识强化之网络编程笔记15:Android网络通信之 Android异步任务处理(AsyncTask使用)
- Java基础知识强化之网络编程笔记24:Android网络通信之 AndroidAsync(基于nio的异步通信库)
- Java基础知识强化之网络编程笔记21:Android网络通信之 Android常用OAuth登录(获取令牌信息)
- Java基础知识强化之网络编程笔记19:Android网络通信之 HttpClient和传统Post、Get方式的区别
- Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)
- Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)