RXJAVA 2链式和常规代码:并排比较
使用和不使用RXJAVA创建循环动画
与执行同样事情的常规代码相比,RXJAVA的新学习者有时会有所帮助。
在这里,我将介绍两种代码,它们的操作几乎是相同的 - 一个使用RXJAVA,另一个使用常规代码。
如果您不熟悉RXJAVA,请查看学习rxjava变得容易
代码做什么
在详细了解之前,让我们看看代码的作用。基本上,它通过一组图像循环以创建动画,如下图所示。
代码操作是:
- 在100毫秒内从0到6,然后等待300毫秒
- 在100毫秒的内部循环回到6到0,然后等待300毫秒。
动画看起来像这样:
注意:如果您对制作该图像动画的整个代码感兴趣,请参考https://betway娱乐官网www.baixiangren.com/better-programming/practical-image-porterduff-mode-usage-in-indroid-3b4b5d2e8f5f
常规代码
我仅使用rxjava将循环操作放在工作线后面,从而避免停止UI线程。除此之外,这只是循环和睡眠(等待)的常规代码示例。
笔记:
rxjavaplugins.seterrorhandler{/*捕获InterruptedException*/}
是主要是为了处理RX中的Onerror无法捕获的睡眠中断。这里有一个解释:https://stackoverflow.com/a/57658846/3286489
优点
它易于阅读和遵循逻辑,您可以将代码映射到上图上的图表。使用简单的编码控制代码,我们可以实现我们想做的事情。
缺点
指某东西的用途线程
考虑到它想要实现的目标,这不是等待的理想选择,而且相对详细。需要更多的代码行,具有更深的代码层次结构。
RXJAVA链代码
优点
该代码看起来更整洁,更简洁。所需的代码层次结构不太深。没有线程
需要,因为它被替换为内部的
手术。
缺点
乍一看,该代码更难理解。它不容易映射到上面显示的流程图。您必须知道RXJAVA操作功能和副作用功能的使用,然后才能简洁。它需要更多的精神能量。
就个人而言,为了更好地理解和清晰,我更喜欢常规的编码方法。但是,在这种情况下,由于需要线程
在这种情况下,我将使用RXJAVA链接间隔
手术。
没有对或错误的答案更好。这只是一个偏好 - 需要评估其使用情况。有时,它们之间的某些东西也会工作。
如果您想要上面的动画的完整代码并继续探索这两种编码方法,请在此处获取:
我希望这篇文章对您有帮助。