问题标签 [rx-android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
213 浏览

android - 为什么 Observable 不在正确的线程上创建?

这运行,我得到 android.os.NetworkOnMainThreadException。我希望它运行 subscribeOn() 方法设置的新线程。

0 投票
1 回答
2905 浏览

android - Flatten Observable> to Observable

I've an Observable that returns a single Cursor instance (Observable<Cursor>). I'm trying to utilize ContentObservable.fromCursor to obtain every cursor's row in onNext callback.

One of the solutions I've figured out is such construction:

This looks rather like a hack because of toBlocking().first(), but it works. I don't like it because most of the processing is done in onNext callback and we've to create outer collection to hold the intermediate results.

I wanted to use it like this:

This still utilizes toBlocking().first() and doesn't work because once the fromCursor observable has finished the cursor is closed so there's no way to map it to object. Is there a better way to flatten Observable<Observable<Cursor>> to Observable<Cursor>?

0 投票
1 回答
4731 浏览

android - 如何使用 RxJava 获取 map 函数返回的结果?

作为我的 API 调用的一部分,我使用 RxJava 的map函数从响应 JSON 中创建图像 URL 列表来获取多媒体信息列表。如何处理从 map 函数返回的列表?这是我的代码:

我能够从响应中创建 URL 的字符串列表,我想在单独的活动或片段中处理这个 URL 列表。

使用flatMap,我相信这可以改进:

0 投票
14 回答
16342 浏览

rx-java - 立即交付第一个项目,“去抖动”以下项目

考虑以下用例:

  • 需要尽快交付第一件物品
  • 需要以1 秒的超时时间去抖动以下事件

我最终实现了自定义运算符,OperatorDebounceWithTime然后像这样使用它

CustomOperatorDebounceWithTime立即交付第一个项目,然后使用OperatorDebounceWithTime操作员的逻辑去抖动后面的项目。

有没有更简单的方法来实现所描述的行为?让我们跳过compose运算符,它不能解决问题。我正在寻找一种在不实现自定义运算符的情况下实现这一目标的方法。

0 投票
1 回答
600 浏览

java - LifecycleObservable 用于后台点击事件

我稍微更改了RxAndroid 示例以在后台执行点击任务,但它不起作用:-(

这是我的代码:

当我运行它时,我得到这个日志:

Func1 在目前正确的后台运行。但是订阅并没有取消订阅。只有当 Func1 也在 UI 线程中运行时,它才会取消订阅。

我必须更改 Func1 在后台运行并且订阅将被取消订阅?

0 投票
1 回答
1313 浏览

android - 如何使用 RxJava 绑定单选按钮

我正在关注Qiitanium应用程序的代码(请参阅链接中突出显示的行),但我无法弄清楚如何绑定 RadioButtons

假设我有一个 R.id.rgMyButtons 作为 Id 的 RadioGroup,它包含 3 个 RadioButtons “Dead”、“Alive”、“Body Missing”,ID 分别是 R.id.rbDead、R.id.rbAlive、R.id.rbMissing

我将 RadioGroup 字段设置为

我将 onViewCreated 中的视图设置为

在 onBind 中,我想将 RadioGroup 绑定到模型数据,以便返回的值直接映射到该组中正确的 RadioButton。我正在寻找类似的东西

这样它就绑定到 RadioGroup 并自动设置正确的值。

person_state() 实际上返回 2 代表死亡,3 代表活着,4 代表失踪,我希望它检查 RadioGroup 中的正确字段。如何在 RxAndroid 中实现这一点?

0 投票
2 回答
7336 浏览

java - RxAndroid:Scheduler.io() 线程上的 UI 更改

我在更改主屏幕墙纸的 IO 线程上有简单的工作,之后我尝试在 UI 线程上运行一些动画:

但这种方法会导致错误: java.lang.IllegalStateException: Observers must subscribe from the main UI thread, but was Thread[RxCachedThreadScheduler-1,5,main]

我试图将第二个 Observable 更改为:

但这没有帮助。

0 投票
1 回答
435 浏览

android - RxJava如何以间隔从列表中发出对象

我正在尝试以 1 秒的间隔从列表中发出对象。

使用这种方法,doOnEach 会同时执行。我究竟做错了什么?

0 投票
2 回答
3958 浏览

java - 使用 flatMap 和 filter 过滤 observables 是否正确?

使用一个人为的例子来说明我的问题,我有一个复合对象类型的 Observable:

我需要根据 id 过滤掉某些类别,所以我最终会做类似的事情:

请原谅人为的代码。我真的只是想了解是否正确使用 RX 来展平我的 observable 然后以我上面所做的方式对其进行过滤。

0 投票
2 回答
151 浏览

java - 如何处理多个不同类型的 observables?

我今天看到一些让我畏缩的代码,但我不知道如何修复它。

本质上,该代码.zip用于多个调用以将它们半链接在一起,然后对结果采取行动:

很多事情看起来都是错的;在 .zip 调用中设置全局状态,返回 null,并且实际上并未将 .zip 用于其预期目的。此外,观察者onNext不使用结果,而是取决于在 .zip 中设置全局状态的副作用。

动机是所有这些 observables 只发出一次(它们是 API 调用),我们希望在缓存返回的值之前等待它们全部完成,然后进入应用程序中的下一个逻辑屏幕。

我不确定如何处理这个电话。我们不能在我们的 Java 版本上使用 lambda,而且我还没有找到一个不长五倍的干净解决方案。