草庐IT

java - RxJava rx.exceptions.MissingBackpressureException 与过滤器和 map

我刚开始接触RxJava/RxAndroid,但在理解如何正确处理背压方面遇到了一些问题。我有一个可观察到的文件扫描器,它可以扫描目录并发出文件。应尽快处理这些文件,不要跳过任何文件。所以管道看起来像这样:Observable->Filter{checkiffileisoftype.xyz}不幸的是,我收到了rx.exceptions.MissingBackpressureException错误。所以我阅读了有关背压的信息,如果我理解正确的话,无损选项只是缓冲区和窗口。我试过了onBackpressureBuffer(),buffer()andwindow().虽然所有onBackpr

android - 使用 RX 进行调用,然后根据第一次调用的结果进行多个并行调用

我必须调用一个返回项目列表的API。对于此列表中的每一项,我都必须调用另一个API(如果列表返回8个项目,我将不得不进行8次并行调用)。我最终必须返回一个列表,我将使用这8个并行调用中的每一个的结果创建该列表。我如何使用RxJava做到这一点?我认为我必须使用flatMap将第一次调用的结果转换为Observable列表,然后我必须使用zip运算符进行并行调用,但我不确定。请注意,我使用的是RxJava2,并且没有使用lambda表达式。谢谢! 最佳答案 例如,您可以这样做,defer()允许您仅在订阅时获取数据,然后创建Obser

android - Rx Kotlin : map function can't infer return type

在连接到蓝牙设备的应用程序中,我使用RxKotlin使用以下函数:privatefunstartBluetoothPair(device:BluetoothDevice){Observable.just(device).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).map{varuuid:UUID=BLUETOOTH_UUIDvarsocket=it.createRfcommSocketToServiceRecord(uuid)socket.connect()returnsocket}.su

android - 如何在 WorkManager 中配置 Rx?

我实现了一个AlarmManager以在用户向任务添加截止日期时发送通知。然而,当用户关闭设备时,所有警报都将丢失。现在我正在更新BroadcastReceiver以接收android.intent.action.BOOT_COMPLETED并重新安排为每个任务设置的所有警报。我的第一次尝试是在BroadcastReceiver中获取一个包含所有截止日期高于当前时间的任务的RxSingle,然后重新安排所有警报。问题是一旦BroadcastReceiver没有生命周期,我就无法处理Observable。另外,itseemsthatthisisnotagoodapproach.在我的研究

java - RxJava/Rx绑定(bind) : how to handle errors on RxView

我在android中使用RxJava和RxBindings进行查看。以下是我正在做的一个例子。RxView.clicks(btMyButton).flatMap(btn->{//anotherobservablewhichcanthrowonError.returnObservable.error(null);}).subscribe(object->{Log.d("CLICK","buttonclicked");},error->{Log.d("CLICK","ERROR");});当我点击MyButton时,我使用flatMap返回另一个observable,这是一个网络调用,可以

android - 如何使用 Retrofit + RX 实现 WebSocket

我有一个使用RetrofitwithRx的项目结构。我想用它来实现WebSocket通信,知道如何实现吗? 最佳答案 Retrofit尚不支持网络套接字。该功能预计将出现在2.1版本中。但是,JW一直在开发一个分支。您可以从hisbranch构建Retrofit并尝试一下。或者可以等到2.1发布。这是对应的issue在Github上。 关于android-如何使用Retrofit+RX实现WebSocket,我们在StackOverflow上找到一个类似的问题:

android - 处理 Retrofit 2 RX 中的错误

我的请求应该得到POJO的JSON或JSON描述的错误(可能是无效的请求字段、服务器问题等)。但是订阅者中的改造只给我Throwable。怎么才能知道是不是网络错误,什么是http码,得到有错误的json?privateclassProjectListSubscriberextendsSubscriber{@OverridepublicvoidonCompleted(){}@OverridepublicvoidonError(Throwablee){//isthatanetwork?httpcode?convertjsontoerrorPOJO?}@Overridepublicvoid

android - 将 API 调用与 RX Java 相结合

我是RXJava的新手,我无法理解如何将API调用的结果链接在一起。我正在使用retrofitA和B进行两个API调用,它们都返回一个可观察的对象列表。两个API调用都是独立的,所以我想同时进行,但要获得最终结果,我需要先获取A的结果,做一些工作,然后将其与B的结果结合起来填充我的列表适配器.进行API调用A调用APIB取A的结果并创建结果X获取B+X的结果并填充适配器@GET("/{object_id}/object_a")Observable>getObjectAList(@Path("object_id")longobject_id);@GET("/{object_id}/obj

android - 适用于 Raspberry Pi 3 的 Android Things 上的 UART 外设

如何在AndroidThingsforRaspberryPi3上使用UART外设?它似乎默认分配了linux控制台。 最佳答案 默认情况下,UART端口映射到linux控制台,以防止内核消息干扰您的外围设备。您可以通过使用以下方法从主机上的SD卡安装引导分区来禁用控制台:mount/dev/sdX1/mnt/disk其中sdX替换为您的sdcard读卡器设备名称(将sdcard插入读卡器后运行dmesg应该可以帮助您找出设备名称)。然后编辑/mnt/disk/cmdline.txt以替换以下内核引导参数:console=serial

android - 上网查,使用MVP、RX和Retrofit时放在哪里

我已经经历了this和this邮政。所以我真的同意第二个帖子,即演示者不应该知道android特定的东西。所以我在想的是将互联网检查放在服务层中。我正在使用RxJava进行网络调用,所以我可以在进行服务调用之前进行网络检查,所以这样我需要手动抛出IOException因为当网络不可用时我需要在View上显示错误页面,另一种选择是我为没有互联网创建自己的错误类Observable>response=Observable.create(newObservable.OnSubscribe>(){@Overridepublicvoidcall(Subscriber>subscriber){if