1、定义
in、out、inout表示跨进程通信中数据的流向(基本数据类型默认是in,非基本数据类型可以使用其它数据流向out、inout)。
in 表示数据只能由客户端流向服务端。(表现为服务端修改此参数,不会影响客户端的对象)
out 表示数据只能由服务端流向客户端。(表现为服务端收到的参数是空对象,并且服务端修改对象后客户端会同步变动)
inout 则表示数据可在服务端与客户端之间双向流通。(表现为服务端能接收到客户端传来的完整对象,并且服务端修改对象后客户端会同步变动)
oneway 关键字用于修改远程调用的行为,被oneway修饰了的方法不可以有返回值,也不可以有带out或inout的参数。
- 本地调用(同步调用)
- 远程调用(异步调用,即客户端不会被阻塞)
- 使用oneway时,远程调用不会阻塞;它只是发送事务数据并立即返回。接口的实现最终接收此调用时,是以正常远程调用形式将其作为来自 Binder 线程池的常规调用进行接收。
interface IBookTestInterface {List<Book> getBooks();//异步调用oneway void addBookIn(in Book book);//同步调用void addBookIn(in Book book);