【发布时间】: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