Android RXJava 清理解决方案
Android RXJava cleaner solution
我有一个要执行的命令的动态列表。
这些命令对象中的一些应该在后台线程中执行,其中一些
必须在 UiThread 上执行,因为它们会更改视图并触发动画。
有些命令不允许在另一个命令完成之前执行。例如。
C1 触发持续 2 秒的淡入动画。 C2 触发淡出动画。
=> 命令之间的延迟是动态的。
我是 RXJava 的新手。我的解决方案有效,但似乎不是很优雅。
=> 在将命令列表转换为 Observable 之前,我在需要的地方添加了 "Wait" 命令。
等待命令只是调用 Thread.sleep(delayInMs)。观察和订阅都运行在同一个
后台线程。 Observable 发出命令。如果命令是 UiCommand 的一个实例
订阅者将执行发布到 uiThread,否则它会在
后台线程。
用 RXJava 解决这个问题的最佳方法是什么?我想摆脱
UiThread 帖子和列表的前期准备。但用 RXJava 功能替换它。
这里似乎可以使用转换器将您的可观察对象从同步转换为异步。
看看这些例子
我有一个要执行的命令的动态列表。 这些命令对象中的一些应该在后台线程中执行,其中一些 必须在 UiThread 上执行,因为它们会更改视图并触发动画。
有些命令不允许在另一个命令完成之前执行。例如。 C1 触发持续 2 秒的淡入动画。 C2 触发淡出动画。 => 命令之间的延迟是动态的。
我是 RXJava 的新手。我的解决方案有效,但似乎不是很优雅。
=> 在将命令列表转换为 Observable 之前,我在需要的地方添加了 "Wait" 命令。 等待命令只是调用 Thread.sleep(delayInMs)。观察和订阅都运行在同一个 后台线程。 Observable 发出命令。如果命令是 UiCommand 的一个实例 订阅者将执行发布到 uiThread,否则它会在 后台线程。
用 RXJava 解决这个问题的最佳方法是什么?我想摆脱 UiThread 帖子和列表的前期准备。但用 RXJava 功能替换它。
这里似乎可以使用转换器将您的可观察对象从同步转换为异步。
看看这些例子