Android 中aidl调用执行线程和同步异步问题
来源:互联网 发布:矩阵论清华大学出版社 编辑:程序博客网 时间:2024/05/24 02:38
1,bind服务回调执行所在线程
客户端调用bindService(intent, mConn, Context.BIND_AUTO_CREATE);
ServiceConnection回调中获取服务器端的接口(实现了Binder的类)onServiceConnected回调实在主线程中执行
2,调用服务端binder类(只实现binder和对应接口的stub类)
1》调用没有用 oneway修饰的方法,客户端调用会直接阻塞,服务端方法在binder线程池中执行
2》调用使用oneway调用的方法(不能有返回值),客户端不会阻塞,服务端方法在binder线程池中执行
3,有回调的binder方法(实现一个对应的服务器端binder回调)
1》回调方法直接在服务器端方法中调用:
客户端阻塞,阻塞时间为两个之和,客服端回调在调用方法对应线程(如在主线程也是一样,但是show toast 出不来),服务端线程任然在binder线程中执行
2》回调方法在服务器端方法中开线程调用
客户端阻塞,阻塞时间为服务器端时间,客服端回调在客服端binder线程中执行,服务端线程任然在binder线程中执行
4,客户端回调中调用服务器端方法
在3基础上,再在回调中调用服务器端方法是在子线程中执行不是在binder线程
总结:调用binder中非oneway方法是阻塞的并且方法是在子线程中执行,调用oneway方法不阻塞,任然在子线程中执行
阅读全文
0 0
- Android 中aidl调用执行线程和同步异步问题
- C#异步调用和线程的同步
- 线程同步和异步问题-Java
- 同步执行和异步执行
- 线程同步和异步
- 线程同步和异步
- 线程同步和异步
- 同步和异步调用
- 解析VS.Net线程同步和异步调用
- Android中同步与异步的问题
- 同步调用和异步调用
- 同步调用和异步调用
- 同步调用和异步调用
- Android中使用Handler和异步任务(AsyncTack)来为UI线程执行费时操作
- java 线程同步和异步
- 线程的同步和异步
- 线程的同步和异步
- 线程的同步和异步
- 关于Xutils框架出现无法访问HttpRequestBase 找不到org.apache.http.client.methods.HttpRequestBase解决方案
- 【mysql 事件】mysql事件的开启和调用
- [搜索] hdu1043 Eight(8思路)
- Android观察者模式项目中基本用法
- Codeforces 365C Matrix 暴力
- Android 中aidl调用执行线程和同步异步问题
- Lintcode——整数排序 II
- js 前端验证表单输入
- SQL Server数据库的基本操作
- Device Module之Kobject,Ktype,Kset(基于kernel 4.11)
- 架构的理解
- android的Environment类
- Java多线程之this与Thread.currentThread()的区别——java多线程编程核心技术
- 在Android中单独编译linux kernel驱动模块