Rx java 如何实现RxAndroidBle的同步任务队列 总结

Rx java 如何实现RxAndroidBle的同步任务队列 总结,rx-java,rx-android,rxandroidble,Rx Java,Rx Android,Rxandroidble,我在项目中使用RxAndroidBle作为BLE通信框架。我通过以下方式从通知中收到数据: public Observable<byte[]> requestCharacteristic(UUID notificationUuid, UUID writeUuid, byte[] writeData) { return Observable.zip( connectionObservable.concatMap(rxConnection -> r

我在项目中使用RxAndroidBle作为BLE通信框架。我通过以下方式从通知中收到数据:

public Observable<byte[]> requestCharacteristic(UUID notificationUuid, UUID writeUuid, byte[] writeData) {
    return Observable.zip(
             connectionObservable.concatMap(rxConnection -> rxConnection.setupNotification(notificationUuid))
                 .concatMap(rxConnection -> rxConnection).first(),
             connectionObservable.concatMap(rxConnection -> rxConnection.writeCharacteristic(writeUuid, writeData)),
             (responseBytes, writeBytes) -> { return responseBytes; }
    );
}
公共可观察请求特征(UUID通知UUID,UUID WriteUID,字节[]writeData){
return-Observable.zip(
connectionObservable.concatMap(rxConnection->rxConnection.setupNotification(notificationUuid))
.concatMap(rxConnection->rxConnection).first(),
connectionObservable.concatMap(rxConnection->rxConnection.writeCharacteristic(writeUID,writeData)),
(responseBytes,writeBytes)->{return responseBytes;}
);
}
问题:
由于BLE设备需要保证手机的同步请求,因此请求必须在请求执行完成后完成。我对RX不熟悉。如何使用FIFO方式执行上述代码?

正如您所述,您的代码将用于一次执行,但当存在多个并行请求时,它们将不会序列化。您需要添加的是
requestCharacteristic()
函数的外部同步


有一个已经回答,这可能正是你所寻找的。答案是为基于
RxJava1
的库版本创建的,但将其调整为
RxJava2

应该不会太难。谢谢,这样可以使逻辑串行化