RxJava和Bolts有什么区别?

rei*_*aki 7 android rx-java bolts-framework

我已经对此进行了研究,我知道RXJava正在使用可观察模式,而Bolts依赖于执行程序.什么框架对处理需要按顺序完成的任务有好处?

我听说过使用singleExecutors,队列,链接asynctasks和这两个框架.我见过更多人使用螺栓和rxjava,但我很想知道两者之间的人们经历.

谢谢!

Jah*_*old 19

我已经在不同的项目中使用过它们,并且已经完成了从Bolts到RxJava的迁移.你问题的简单答案

什么框架对处理需要按顺序完成的任务有好处?

是你可以轻松使用任一框架来做到这一点.他俩:

  • 允许任务一个接一个地链接
  • 启用为每个任务指定执行程序等
  • 允许在方便的时候捕获和处理错误

然而,这就是螺栓功能结束的地方,而RxJava只是继续给予.RxJava的真正强大之处在于它的运算符,其中包括转换,组合和过滤数据.

两个框架的学习曲线都很陡峭,RxJava更陡峭......但它的功能要强大得多.

另外,这两个库的方法计数是

RxJava - 4605
Bolts  - 479
Run Code Online (Sandbox Code Playgroud)


Gra*_*hew 9

Jahnold给出了很好的概述,我只想添加更多信息:

首先,Bolts和RxJava都是Microsoft异步编程模型的Java实现:Bolts =任务并行化库和RxJava = Reactive Extensions.它们也很容易进行链接和线程切换(后台< - >主线程).

将Bolts/TPL与RxJava/Rx进行比较的最佳方法是Bolts用于异步单值(promises),RxJava用于异步值(流)列表.

  • 所以Bolts对于返回单个值的后台工作很有用,例如一般网络请求,从磁盘读取文件等等
  • RxJava适用于返回多个值的内容,例如订阅GPS坐标,onClick事件等.

所以为了更好地回答你的问题:

什么框架对处理需要按顺序完成的任务有好处?

我不得不问另一个问题:你打算让你的工作成为单一结果还是多重结果?