【问题标题】:Android RXJava cleaner solutionAndroid RXJava 清洁器解决方案
【发布时间】:2016-07-15 20:21:19
【问题描述】:

我有一个要执行的命令的动态列表。 其中一些命令对象应该在后台线程中执行,其中一些 必须在 UiThread 上执行,因为它们会更改视图并触发动画。

在另一个命令完成之前不允许执行某些命令。例如。 C1 触发动画淡入淡出,持续 2 秒。 C2 触发淡出动画。 => 命令之间的延迟是动态的。

我是 RXJava 的新手。我的解决方案有效,但似乎不是很优雅。

=> 在将命令列表转换为 Observable 之前,我会在需要的地方添加“等待”命令。 等待命令只是调用 Thread.sleep(delayInMs)。观察和订阅都运行在同一个 后台线程。 Observable 发出命令。如果命令是 UiCommand 的一个实例 订阅者将执行发布到 uiThread 否则它在 后台线程。

用 RXJava 解决这个问题的最佳方法是什么?我想摆脱 UiThread 帖子和列表的前期准备。但是用 RXJava 特性替换它。

【问题讨论】:

  • 你必须添加你的代码,以目前的形式你的问题太宽泛了

标签: android multithreading delay rx-java blocking


【解决方案1】:

您似乎可以使用转换器将您的 observable 从同步转换为异步。

看看这些例子

https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/transforming/ObservableCompose.java

【讨论】:

  • 谢谢。我会检查的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 2012-11-02
相关资源
最近更新 更多