当前位置: 代码迷 >> 综合 >> Android AIDL参数中in、out、inout、oneway含义及区别
  详细解决方案

Android AIDL参数中in、out、inout、oneway含义及区别

热度:66   发布时间:2024-02-24 06:11:46.0

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);
  相关解决方案