android AIDL如何加 FLAG_ONEWAY
时间: 2024-11-04 22:16:18 浏览: 11
在Android应用间通过AIDL (Android Interface Definition Language) 进行通信时,`FLAG_ONEWAY`是一个标志位,用于指示远程方法调用应该是一次性的,即消息发送后就不再等待响应。当设置这个标志后,服务端不会因为客户端没有处理返回结果而阻塞。
要在AIDL接口声明中添加`FLAG_ONEWAY`,首先需要定义一个aidl文件(通常扩展名为.aidl),然后在方法前加上`@aidl(visibility="public", flags=["Binder.RPC_CALL_ONEWAY"])`注解。例如:
```java
// MyInterface.aidl
interface MyInterface {
// 添加了FLAG_ONEWAY的远程方法
@aidl(visibility="public", flags=["Binder.RPC_CALL_ONEWAY"])
void doSomethingWithoutResponse(String input);
}
```
在生成的Java接口中,会看到类似这样的方法:
```java
public abstract class MyInterface$Stub extends Binder implements MyInterface {
public void doSomethingWithoutResponse(String input) throws RemoteException {
// 实现细节...
// 此处服务端发送请求后不会等待客户端响应
}
}
```
阅读全文